the_content и wp_link_pages

Похоже, что многие плагины добавляют к the_content фильтра / action-hook для отображения соответствующих сообщений, рекламных объявлений и т. Д. Проблема в том, что я обнаруживаю это до того, как разбивается на страницы, так что разбивка на паузы ниже.

Можно ли отображать постраничную разбивку сразу после содержимого? Похоже, что wp_link_pages может использоваться только внутри цикла.

Solutions Collecting From Web of "the_content и wp_link_pages"

Думаю, у вас есть:

 the_content(); wp_link_pages(); 

в вашем файле темы. Поэтому вы можете попробовать следующее ( PHP 5.4+ ):

 /** * Append the wp_link_pages to the content. */ ! is_admin() && add_filter( 'the_content', function( $content ) { if( in_the_loop() ) { $args = [ 'echo' => false ]; // <-- Adjust the arguments to your needs! $content .= wp_link_pages( $args ); } return $content; }, 10 ); // <-- Adjust the priority to your needs! 

а затем настройте аргументы и приоритет на ваши нужды. Обратите внимание на параметр echo , он установлен в false, потому что нам нужно вернуть результат. Затем вам нужно удалить wp_link_pages() из вашего (дочернего) файла темы.

Обновить:

Если мы не хотим удалять лишние wp_link_pages() вручную, мы можем использовать фильтр wp_link_pages чтобы отображать только результат в нашем the_content фильтра the_content :

 /** * Append the wp_link_pages to the content. */ ! is_admin() && add_filter( 'the_content', function( $content ) { if( in_the_loop() ) { $args = [ 'echo' => false, '_show' => true ]; // <-- Adjust the arguments to your needs! $content .= wp_link_pages( $args ); } return $content; }, 10 ); // <-- Adjust the priority to your needs! /** * Only display wp_link_pages() output when the '_show' argument is true. */ add_filter( 'wp_link_pages', function( $output, $args ) { return ! isset( $args['_show'] ) || ! wp_validate_boolean( $args['_show'] ) ? '' : $output; }, 10, 2 ); 

где мы ввели дополнительный аргумент _show для этой цели.