WordPress 指定页面评论分页功能

首先要声明一下,本文不是要说明我折腾的 WordPress 新成果,而是我最近碰到的新难题,特此求助。

其实这个问题已经困扰了我有一段时间了,我也折腾了不只一种方法都没能解决,才不得已求助于广大万能的博友。早就有博友向我提出,取消 WordPress 的评论分页,因为有些朋友喜欢翻看之前其他博友的留言,就此看来,评论分页并不是一种好的访客体验,而且从 SEO 角度来说,会无谓地增加重复页面,虽然 WordPress 已经支持 canonical 标签,但是总不如评论不分页的好。

我们可以看无处不在的卢松松和人气小巨蛋兽兽,他们的每篇文章的评论数都至少一、两百吧,但是他们再多的评论也都没有用评论分页,而我每篇最多也只有一百两条评论数,又何必用评论分页呢?话说,我也不想搞评论分页啊,但是在我的留言板页面,已经有2200+评论,试想一下如果不开启评论分页,这将是多么壮观的一个页面呀,恐怕完全打开就要费不少时间吧。所以为了这个留言板,我不得不开启评论分页。

于是,问题就出来了,现在我只想要留言板页面单独实现评论分页,而其他日志页面的评论不分页,这要怎么操作呢?

当然,我知道用 WordPress 插件可以指定的页面评论分页,不过这实在不是我想要的,因为我是无插件主义者,这个方案被我第一个否绝了。我深入研究了一下 wp_list_comments() 函数,可是就是没有找到这个评论分页的参数,郁闷,Wordpress 2.7+ 的主题新函数 wp_list_comments() 确实让我们的 comments.php 可以精简不少,但是不可否认带来了很多 bug 和弊端,比如 WordPress 最新评论无法定位问题也是因为  wp_list_comments() 函数引起的,现在又为了这个函数多出一个问号,老革命碰到新问题了。

我大致想了一个思路,用 get_option('page_comments') 来获取后台设置的是否分页评论,再用判断来区别不分页评论的日志页面和需要分页评论的留言板页面。不过很遗憾,试了几次还是没有成功,实在是没招了。广大的 WordPress 博友们给支支招吧。

  1. 请教,全站默认顺序不分页,而留言板需倒序分页显示最新留言。 用下面代码,能分页却倒序显示最旧的留言,汗 :arrow:

    <?php wp_list_comments( array( 'callback' => 'twentyten_comment','reverse_top_level' => '1','per_page' => '5' , ) ); ?>

  2. Pingback: 指定页面评论分页的种种 | 木木木木木

    • 呵呵,我一有问题就发动群众一起解决,是个不错的方法,很快就会得到很多支持和解决办法,就像本文求助的问题,已经得到很好的答案了

  3. 恩,这个我刚好写过,关键函数
    wp_list_comments('reverse_top_level=1&per_page=20')
    per_page 可单独控制每页评论数

    关键文件:http://docs.google.com/leaf?id=0B_3PkniqIawIMzg3Zjg3ZWQtNTNiYi00MDQ1LWFhNWYtNGYxZmQwMzc0NTM2&hl=en

  4. Pingback: 也谈Wordpress 指定页面分页功能 | 阿邙’S Blog

  5. 就判断此页是否是留言本,如果是就执行分页代码嘛,如果有几个日志页面也想加分页的话,也加入到判断的条件里 这样行否?

  6. 这个是我以后想的问题,我现在琢磨评论的样式,我刚刚K掉了2i2j 的wp-thread-comment插件,可是以前的评论相间颜色怎么也弄不好,评论的CSS好复杂啊我觉得 :arrow:

  7. 先提供一个思路,先把comment.php复制一份,重命名为comment-page.php,分页部分修改一下
    把你的留言板单独设定一个模板,模板调用评论的部分“comments_template(); ”替换成include comment-page.php
    这个好像可以吧