如何将多页帖子显示为单个包装的帖子?

时间:2015-09-30 作者:Matt Andrews

首先:这与只完整显示多页文章不同(通过使用<?php echo apply_filters(\'the_content\', $post->post_content); ?>, 仅供参考!)。

这里我想做的是在我的主题中输出HTML,如下所示:

<div class="page-1">
    <!-- page one content goes here -->
</div>
<div class="page-2">
    <!-- page two content goes here -->
</div>
<!-- etc -->
我想不出一种方法来获取按分组的页面内容<!--nextpage--> 分页符。我可以获取原始帖子内容(例如,在发布之前the_content 我想我可以手动按分页符拆分字符串,然后将筛选器应用于每个页面,但我想知道是否有更好的方法?

1 个回复
SO网友:Matt Andrews

既然看起来没有现成的方法可以做到这一点,下面是我的解决方案。它只需拆分pagebreak标记上的内容,解析HTML并将每个页面包装在一个div中:

function get_paginated_post($post) {
    $pagebreak = \'<!--nextpage-->\';
    $raw_post = $post->post_content;
    $pages = explode($pagebreak, $raw_post);
    $html = \'\';
    foreach ($pages as $p=>$page) {
        $html .= \'<div class="page-\' . ($p+1) . \'">\' . apply_filters(\'the_content\', $page) . \'</div>\';
    }
    return $html;
}
虽然不漂亮,但很管用。

相关推荐

Count posts for pagination

我正在为一个网站分页<;上一页(页码)下一页>很简单,已经完成。但是现在我需要添加一个选择器来直接转到页面(例如:转到第7页),要这样做,我需要知道有多少页面,为此我需要计算在查询中找到了多少帖子。问题是这个网站有太多的帖子(>13.000),查询所有帖子都会减慢页面加载速度,这就像。。。10秒后页面才能加载。显然,这是不可接受的。分页解决了这个问题,因为一次只加载50或100篇文章,但我无法将它们全部计算在内。我可以在不加载的情况下统计某个查询中的帖子吗?或者我可以通过其他方式获得页数吗