Есть ли способ изменить порядок, в котором плагины отображаются на странице?
В настоящее время в моей установке WordPress активированы следующие плагины:
Строка 1:
Внешний мозг
Строка 2:
Подписка через RSS/электронную почту feedburner
Строка 3:
Виджет твитов Topsy, виджет FB, похожий на виджет, виджет WP-Отправить другу по электронной почте
Я хочу изменить порядок, в котором они появляются.
Я хочу, чтобы виджеты в строке 3 появлялись первыми, виджет outbrain появлялся последним в строке 3. Как мне этого добиться?
Хотя Я могу немного повозиться с PHP, если требуется решение, я предпочитаю независимый плагин, чтобы позаботиться о заказе, если он существует!
Спасибо!
1 answers
Из вашего комментария похоже, что вы почти поняли,
Плагины, которые добавляют что-то под ваш контент, обычно use the_content
фильтруют, вызывая функцию с помощью add_filter
например, плагин outbarin вызывает это так:
add_filter('the_content', 'outbrain_display');
Таким образом, вы можете заказать их, передав параметр приоритета
add_filter('the_content', 'outbrain_display',99);
Но изменять его непосредственно в файлах плагина неправильно, так как в следующий раз, когда вы будете обновлять плагин, вы потеряете эти изменения, поэтому правильный способ сделать это чтобы добавить действие после загрузки плагинов с помощью крючка действия plugins_loaded
и удалить добавленные ими фильтры, а затем повторно добавить эти фильтры в нужном порядке:
add_action('plugins_loaded','my_content_filters_order');
function my_content_filters_order(){
//first remove the filter call of the plugin
remove_filter('the_content', 'outbrain_display');
//... Do that for all filters you want to reorder
//... ex: remove_filter('the_content', 'FB_like');
//then add your own with priority parameter
add_filter('the_content', 'outbrain_display',99);
//... Do that for all filters just removed and set
//... the priority accordingly
//... Lower numbers correspond with earlier execution
//... ex: add_filter('the_content', 'FB_like',98);
//... this will run first then outbrain
}
Надеюсь, это поможет