【发布时间】:2012-08-27 19:20:37
【问题描述】:
我想构建一个页面,该页面将显示所有 cmets,无论它们附加到哪个帖子。我还希望对该页面进行分页,因为它可能有 10,000 多个 cmets。
我不知道该怎么做,但这里有一些我目前研究过的函数:
get_comments- 如果没有传入post_id,它将返回所有 cmets。但是,我看不到对这些页面进行分页的方法(有offset和number选项可供选择,但手动操作非常非常乏味)。wp_list_comments- 关于这方面的文档非常糟糕,但the source code 建议如果与get_comments一起使用,我们可以循环遍历所有 cmets,方法是将get_comments数组作为第二个传入争论。但是,这仍然会使用get_comments来实际...好吧,获取 cmets,并且似乎没有办法对其进行分页。previous_comments_link&next_comments_link- 这些似乎只能与wp_list_comments结合使用(没有第二个参数)。paginate_comments_links- 看起来它也只适用于wp_list_comments(没有第二个参数)。
我尝试过的:
-
只需在
get_comments中使用number参数:$comments = get_comments(array( 'status' => 'approve', 'number' => '2' )); wp_list_comments(array( 'callback' => 'my_rendering_function' ), $comments); paginate_comments_links();这不会显示任何分页链接。
-
这里建议的方法:Display latest comments on page with pagination
$comments = get_comments(array( 'status' => 'approve' )); wp_list_comments('per_page=2', $comments); paginate_comments_links();这也不起作用(它显示前 2 个 cmets,但没有分页)。此外,我对
get_comments将 所有 cmets 加载到内存中感到畏缩。
问题:
如何对所有个cmets进行分页?
P.S.我使用的是 WordPress 3.4.1 和 PHP 5.3.2。
【问题讨论】:
-
我没有看到直接的方法来做到这一点,你最终需要使用
offset和number来获得所需的 cmets 来显示。看看 SEO 寻呼机插件并且您可以使用分页功能或者使用自定义 WordPress 循环来实现您的功能。 -
@UmeshAwasthi - 你读过the linked-to post吗?似乎应该有办法做到这一点。我是不是误会了什么?
标签: php pagination comments wordpress