the_content and wp_link_pages

时间:2015-04-16 作者:Jürgen Paul

许多插件似乎在为the_content 展示相关帖子、广告等。问题是,这些页面出现在分页后的前面,因此分页被向下推到下面。

是否可以在内容之后立即显示分页后的内容?它出现了wp_link_pages 只能在循环内使用。

1 个回复
最合适的回答,由SO网友:birgire 整理而成

我想你有:

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 为此目的的论证。

结束

相关推荐

Iterate through ID's in loop

我已经基于category创建了一个自定义循环,现在我想运行一个函数,将当前帖子的特定ID作为参数进行迭代。我有。。$secondary_loop = new WP_Query(array( \'category_name\' => get_the_title(), \'posts_per_page\' => 5 )); while ( $secondary_loop->have_posts() ) : $secondary_loop->the_post();&#x