七月
24

wordpress指定页面评论数+支持分页的楼层显示

到了周末,终于有了点时间,继续完善主题一些地方。

首先还是《创建一个可设置cookie相关信息的内置Email联系表单》一文中提到的那个contact.php模板,在有cookie信息时,评论者信息时默认折叠的,然而如果提交邮件信息时如果有错误,会返回错误信息,但是此时评论者信息还是折叠隐藏的(比如如果邮件填错了,此时也不会看到相关错误提示),所以折腾了一下,如果提交信息有错误,评论者信息就不会折叠了,这样就会方便看到哪里出错了。

wordpress指定页面评论数

我设置每页评论数是50,但是在留言页我想让每页只显示20条评论。所以,在评论模板(comments.php)里找到回调函数部分

<?php wp_list_comments('type=comment&callback=SimPaled_comment'); ?>

 

利用wordpress的页面判断函数is_page(),参数为页面的标题或id,修改为

<?php if(is_page('Guestbook')) : ?>
      <?php wp_list_comments('type=comment&callback=SimPaled_comment&per_page=20'); ?>
<?php else : ?>
<?php wp_list_comments('type=comment&callback=SimPaled_comment'); endif; ?>

其中就是留言页在调用函数时多了个per_page=20参数。

支持分页的楼层显示

之前是评论是加了楼层显示的,只是在第一层评论上显示楼层。文章页还好,我还没遇到分页的情况,但是今天无意间打开留言页,发现分页后楼层显示还是从#1开始。上网搜了一圈,并没找到相关信息,倒是发现有人写了如何给嵌套回复按时间顺序加上楼层,不过要是这么修改了那评论楼层也真够乱的。所以我没修改。

网上没信息就自己折腾吧,其实主要就是获取每页设置的评论数和当前所在的分页。于是在include/comment-template.php里发现了

//@return integer | 整型,current page,当前页数
get_query_var('cpage')

每页评论数更好获得

get_query_var('comments_per_page')
get_option('comments_per_page')

既然获得了每页设置的评论数和当前所在的分页,那么就可以在function.php里找到评论模板函数,在前面加上

/**
* @param $page_comment_count | 每页评论数
*
*/
 
global $commentcount;//设置全局变量
if(!$commentcount) {//初始化
    $pagenum=get_query_var('cpage')-1;
    //下面是针对我的主题,因为我的留言页是每页20条评论
    $page_comment_count=is_page('Guestbook')?20:get_option('comments_per_page');
    $commentcount = $pagenum * $page_comment_count;
}

然后在需要显示楼层的地方,调用

<?php echo ++$commentcount; ?>

即可。

如果也要只在第一层评论显示楼层数,则如此调用

<?php if ($depth == 1) : ?>
    <?php echo ++$commentcount; ?>
<?php endif; ?>

当然,你可以给它加上相应的容器并赋予不同的样式,这个就要看你自己的主题了。 评论分页

本文标签: , , , , ,

分享

本文短网址: http://qiqi.boy.im/4c

这篇文章已经有 34 条评论

Comments (31) Trackbacks (3)
You can leave a response or Trackback this entry .
  1. QiQiBoY -#1

    沙发自己坐了。。 :grin: :grin: :grin:

  2. winy -#2

    还没来得及加上无限分页呢
    顺便鄙视自占sf :mrgreen:

  3. 海天 -#3

    额 我的评论没分页……

    • QiQiBoY --#1

      @海天
      一两百条评论不分页还好,但是像如果有个留言板页面,评论多了页面就会拉的太大了。。。

    • 海天 --#2

      @QiQiBoY
      恩 对的 我的留言页面 还是分页的 呵呵
      也是你这种方法
      不过我还没加楼层显示 下次看看
      主要我那个主题 不知道加哪好看……

  4. zwwooooo -#4

    我的早加上了,我也写过类似的文章,随便折腾的。

    • QiQiBoY --#1

      @zwwooooo
      我看过万戈的一篇关于为不同页面设置不同评论数,他是又建了一个comments文件,我感觉他这样做麻烦了。。

    • A.shun --#2

      @QiQiBoY
      这两招偶用着 om 的方法 :oops:

    • 万戈 --#3

      @QiQiBoY
      好像是。。。我等于又做了一个页面模板,除了wp_list_comments的参数不同,其他都一样。。。还是你用判断的省事

  5. Jason -#5

    留言多的还比较有用

  6. 小邪 -#6

    嘿嘿,赞一个,这样促进抢楼的积极性喔 ~

  7. 灰太狼 -#7

    这样促进抢楼的积极性喔 ~

  8. 流年 -#8

    我也还没分页

  9. Page -#9

    嗯 很有用 我用的插件 以后有空改了

  10. 阿邙 -#10

    我也加上了 学习zww的

  11. mice -#11

    杯具的是 我貌似是老主题…
    wp_list_comments
    都没看到这个函数..

  12. QiQiBoY -#12

    插入音乐mp3测试

  13. leesum -#13

    这msn的主题还真不错

  14. Dianso -#14

    用上这个了

  15. 有点蓝 -#15

    请问那个评论楼层的调用到底要加到哪里呢?我翻遍了主题文件都没有找到……

  16. 有点蓝 -#16

    晕我找到了,在functions里,不过全都显示”1″.

  17. Loiy Blog -#17

    正好来找这个,看看能不能用上。

  1. 修改trackback样式,统一评论外观

    [...] 《wordpress指定页面评论数+支持分页的楼层显示》、《 为评论框添加文字格式化编辑器 》、《 wordpress高亮搜索结果+实现关键字前后截断显示。。。 》 [...]

  2. WordPress技术: 无限多级楼层显示

    [...] wordpress评论分为悬浮@回复和嵌套回复。前者显示楼层容易,一层一层累计下来就行,而后者则麻烦了些,因为如果也一层层按时间顺序累计,那么嵌套的子评论往往会打乱评论的楼层。所以大家普遍采用主评论楼层显示。我曾经也写了一篇关于主评论楼层显示的文章《wordpress指定页面评论数+支持分页的楼层显示》。 [...]

Leave a Reply

Hi , say something.

  • :?:
  • :razz:
  • :sad:
  • :evil:
  • :!:
  • :smile:
  • :oops:
  • :grin:
  • :eek:
  • :shock:
  • :???:
  • :cool:
  • :lol:
  • :mad:
  • :twisted:
  • :roll:
  • :wink:
  • :idea:
  • :arrow:
  • :neutral:
  • :cry:
  • :mrgreen: