Порядок вывода add_filter(‘the_content’, ‘add_post_content’). Советы для WordPress.

Советы для WordPress.В этой статье мы научились выводить свою подпись в конце каждой страницы или записи вашего блога на WordPress при помощи add_filter('the_content', 'add_post_content'). Однако, может получиться не совсем то что вы хотите. Подпись будет выводиться, но её положение (порядок вывода) относительно других блоков страницы будет не верным.

Порядок вывода add_filter('the_content', 'add_post_content')

Дело в том,  что некоторые плагины, установленные для вашего WordPress, также могут использовать вывод текста при помощи add_filter('the_content', 'add_post_content'). У вывода таких блоков текста будет определённый порядок, но он может оказаться не верным для вас.

Объясню на примере. Ниже на рисунке представлен конец записи для моего блога RomWeb. Вывод текста в конец записи производят два плагина, а также код написанный мною в функции functions.php. Оба плагина и написанный код используют для этого add_filter('the_content', 'add_post_content').

Управление выводом add_filter('the_content', 'add_post_content').

У меня была задача вывести "Автоматически подобранные похожие записи" сразу после теста записи, однако блок вывода текста и картинок для этого плагина упорно выводился не туда.

Решение проблемы с порядком вывода add_filter('the_content', 'add_post_content')

Решение было найдено: использование дополнительного параметра для функции add_filter:


function add_post_content($content) {
 if(!is_feed() && !is_home()) {
 $content .= 'Моя подпись';
 }
 return $content;
}
add_filter('the_content', 'add_post_content', 100);

Обратите внимание на последний параметр в функции add_filter: ", 100". Это приоритет вывода, целое число. Более низкие значения соответствуют раннему выводу, а функции с одинаковым приоритетом выполняются в том порядке, в котором они были вызваны.

Таким образом, для того чтобы установить верный приоритет для трёх блоков, выводимых при помощи add_filter('the_content', 'add_post_content') в конец страницы или записи, пришлось поискать в php файлах плагинов  нужные нам вызовы функии add_filter и установить для них верные приоритеты: для первого плагина 98, для второго 99, а для моей подписи 100.

Безусловный минус у такого решения: при обновлении плагинов такая настройка может слететь. Поэтому делайте бэкапы всего Web сайта, для того чтобы можно было потом посмотреть какие изменения вы вносили в файлы Web сайта.

0
Loading Disqus Comments ...

No Trackbacks.

Loading Facebook Comments ...