WordPress 不同页面不同评论分页功能

本篇文章是前两天写的《Wordpress 指定页面评论分页功能》的后续,之前纯粹为求助贴,在该文章的评论中得到众牛人、博友的顶力相助,终于解决了这个疑问,在此特别感谢阿邙任平生Willin 大师等人的提点。另外 BS 一下小蛋蛋兽兽,这个P孩居然知道也不告诉我,爆菊一个。

在几位仁兄的帮助下,现在已经实现了 WordPress 给指定页面评论分页的功能,本来想在前文的基础上 Update 一下,后来发现我唠叨的本事挺大,写着写着又吹出一整篇来,就索性单独成文,作为解惑篇谈谈 WordPress 给指定页面的评论分页实现的思路、原理、过程。

先回顾一下求助篇的上一篇文章,文中提到,因为每篇文章的评论数没有多到必须分页,而留言板页面因为评论总数过千又不得不分页,这就出现了一个矛盾的状况,日志评论不需要分页,而留言板需要分页,我疑惑了。之前我的思路一直傻傻地纠缠在如何判断是否分页的问题上,看了 wp_list_comments() 函数的官方文档一遍又一遍,楞是没找到相关的参数,浪费了我不少时间。

其实是我钻牛角尖了,换个思路就可以很简单地解决这一问题。阿邙任平生Willin 大师等技术神人不约而同地提到了 wp_list_comments() 函数的 per_page 参数,我恍然大悟,是啊,为什么一定要判断页面是否需要分页呢?可以让所有页面都分页,而只要在每页显示评论的数量上改动就行了嘛。有了这个思路和想法,解决起来也就没什么难度了。

1、把留言板页面的评论模板和日志页的评论模板分开。复制 comments.php 并另存为 guestcomments.php,打开 page.php 找到 <?php comments_template(' ', true); ?>,这里默认调用的是 comments.php,我们要让留言板的评论部分调用 guestcomments.php,则修改为 <?php comments_template('/guestcomments.php', true); ?>

2、修改 guestcomments.php 中 wp_list_comments() 函数的 per_page 参数,写法如下:

<?php wp_list_comments('type=comment&callback=mytheme_comment&per_page=20');?>

请注意其中的 per_page=20,就是指留言板每页显示20条评论。

3、在 WordPress 后台设置日志页面的评论分页。在“评论选项”中,勾选分页显示评论,并且每页显示999条评论。这个评论数可以设置的高一些,以确定单篇日志的评论数达不到这个数值,也就不会出现分页。或者你可以在 comments.php 中的 wp_list_comments() 函数加上 per_page=999,这也是一样的,这样一来,日志页和留言板的评论部分都不受后台设置控制了。

恩,就是这样,现在你可以看到的单篇日志的评论就不分页了,而留言板页面的评论是分页的。

PS1:感谢邙邙小盆友,特地为我写了解惑篇——《也谈Wordpress 指定页面分页功能》

PS2:感谢 Winy 小盆友,特地为我提供了一个全新的很帅的解决方案——《Wordpress评论非插件实现ajax翻页》

PS3:祝全世界的小盆友,端午节快乐,粽子吃多多~