содержание и страницы ссылок wp
Многие плагины, похоже, добавляют фильтр/действие в the_content
для отображения связанных сообщений, рекламы и тому подобного. Проблема в том, что они появляются перед после разбивки на страницы, поэтому разбивка на страницы опускается ниже.
Можно ли отобразить разбивку по страницам сразу после содержимого? Похоже, wp_link_pages
можно использовать только внутри цикла.
1 answers
Я думаю, у вас есть:
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
:
/**
* 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
для этой цели.