<!--nextpage-->作为循环内的短码?

时间:2015-04-12 作者:David Reis

有人成功地实现了这一点吗?我想包括<!--nextpage--> 在单个post循环中作为短代码。我试着回应它,标签出现了,但帖子没有分成几页。

我需要能够回音do_shortcode(\'[nextpage]\');single.php 把它分成不同的页面。。。

1 个回复
SO网友:birgire

使用the_posts 过滤器:

这里有一个使用the_posts 过滤器,在setup_postdata() 已激活:

/**
 * Replace [nextpage] with <!--nextpage--> through the \'the_posts\' filter.
 *
 * @see http://wordpress.stackexchange.com/a/183980/26350
 */

! is_admin() && add_filter( \'the_posts\', function( $posts )
{
    $posts = array_map( function( $p )
    {
        if ( false !== strpos( $p->post_content, \'[nextpage]\' ) )
            $p->post_content = str_replace( \'[nextpage]\', \'<!--nextpage-->\', $p->post_content ); 
        return $p;
    }, $posts );
    return $posts;
});
你的方法不起作用的原因是[nextpage]setup_postdata(), 处理分页后的,已检查<!--nextpage--> 在帖子内容中。

示例:

这里我用一些WordPress Lorem Ipsum:

back-end

默认主题前端有以下输出:

front-end

结束

相关推荐

Add shortcode in my div

我想在我在主题中创建的div中添加一个短代码这是div: <?php if(!is_home()): ?> <div id=\"cristi\"><?php echo get_the_content(1); ?></div> <?php endif; ?> 这是短代码:[contact-form-7 id=\"54\" title=\"Contact form 1\