2010年07月11日 160条评论

完美的WordPress无限嵌套回复方法

我曾今在《折腾:5级嵌套改为2级嵌套 & 主评论内悬浮显示 @ 评论(唠叨篇)》这篇文章说过我的嵌套评论结构——所有嵌套评论用 jQuery 锁定到主评论下,用的是 Jinwen 的嵌套思路 实现的,但这样有个访客体验小问题:就是回复主评论下的嵌套评论时,回复框会跑到主评论上面去,对于访客的体验非常不好,容易晕。

前几天阿邙和qiqiboy同时写了关于实现无线嵌套评论的方法,认真拜读后,觉得阿邙的方法不适合我,觉得qiqiboy的方法非常适合我。

传送门:阿邙《WordPress嵌套评论之无限嵌套》《WordPress嵌套评论之无限嵌套之补遗

qiqiboy的原理方法我不累说,具体到这里《完美解决WordPress嵌套回复的层深问题(无限嵌套)<一>

下面我只说实现方法:(由于qiqiboy在文章贴的代码错误,我花了一些时间才发现问题所在,已去qiqiboy那里评论反馈)

1. 去WP后台设置评论嵌套层数,我设为2层

2. 打开主题 functions.php 找到评论回调函数,回复按钮一般都是利用默认函数comment_reply_link(),如下

<?php comment_reply_link(array_merge( $args, array('depth' => $depth, 'max_depth' => $args['max_depth']))) ?>

把其修改为

<?php if ($depth == get_option('thread_comments_depth')) : ?>    <!-- 评论深度等于设置的最大深度 -->
 <!-- 将第二个参数改为父一级评论的id -->
     <a onclick="return addComment.moveForm( 'comment-<?php comment_ID() ?>','<?php echo $comment->comment_parent; ?>', 'respond','<?php echo $comment->comment_post_ID; ?>' )" href="?replytocom=<?php comment_ID() ?>#respond" class="comment-reply-link" rel="nofollow">Reply</a>
 <?php else: ?>
 <!-- 正常情况 -->
     <a onclick="return addComment.moveForm( 'comment-<?php comment_ID() ?>','<?php comment_ID() ?>', 'respond','<?php echo $comment->comment_post_ID; ?>' ) " href="?replytocom=<?php comment_ID() ?>#respond" class="comment-reply-link" rel="nofollow">Reply</a>
 <?php endif; ?>

3. 因为最后那层评论都是堆积在最后那层评论上一级,所以如果评论很多的话,就会出现不知道谁回复谁的情况,可以考虑我的评论给每个评论加上 @评论者 ,实现方法参考我以前写的《用 jQuery 实现点击回复之后显示@用户名的效果

OK,搞定,具体效果看我博客的评论

=======================

发呆时,延伸一下

PS一种情况(其实是我的情况):如果以前用的是5级嵌套,现在想用2级无限嵌套,如果按上面的方法实现无限嵌套回复,就会出现一个情况

什么情况呢?就是以前2级以后的嵌套评论都排在2级评论下面,混乱的很,那如何解决呢?我稍微想了下,两个步骤解决:

1. 修改一下判断条件$depth == get_option('thread_comments_depth')
当$depth等于后台设置的嵌套最大层数(这里是5)时,用特殊的 reply 链接,可以改一下,改为 $depth == 2,也就是第2层使用特殊的 reply 链接

2. 因为设置了5层嵌套,第1步修改后第3、4层还是会出现 reply 链接,可以在style.cs加个css属性隐藏掉第3、4层的reply

ol.commentlist li ul.children li ul.children div.reply{display:none;}/*意思是第3级以后的reply链接隐藏不显示*/

(其实可以写个 if 语句根据 $depth 的值显示 reply,这样就不用设置css了。反正举一反三,一个目的可以多种方式实现)

OK,解决。

zww
or
oooo

“完美的WordPress无限嵌套回复方法”有160条评论

  1. A.shun says:

    华丽的沙发,不解释~ :razz:

    1. 元胜 says:

      @A.shun
      一层两层……层层层

    2. JOY says:

      @A.shun
      压死沙发

  2. A.shun says:

    这个要学习,过几天折腾 :roll:

    1. zwwooooo says:

      @A.shun 现在我感觉完美了,哈

    2. BoKeam says:

      @zwwooooo 跑出这么多回复按钮

  3. 然后是这个沙发啊。

  4. TTkea says:

    这个好,喜欢,,

  5. 猪八戒 says:

    我在google阅读器里刚看到就有这么多项人评论了。

  6. Jinwen says:

    先顶再看,折腾王啊。。哈哈 :idea:

    1. 爱月 says:

      @Jinwen jinwen在推特上这么一RT,这篇文章就火了~当然~z兄是很能折腾的~爱月佩服~

    2. zwwooooo says:

      @爱月 哈,这倒是,Jinwen的T可是很多人

    3. zwwooooo says:

      @Jinwen 我觉得按照你以前的思路这个比较完美了

  7. [...] This post was mentioned on Twitter by Jinwen. Jinwen said: RT @zwwooooo: 完美的WordPress无限嵌套回复方法 http://goo.gl/fb/6cV0m [...]

  8. winy says:

    就用这个了,以前乱了就乱了,我经常改嵌套层数

    1. zwwooooo says:

      @winy 我以前用5级的,呵呵

  9. tw says:

    折腾有理。但是我发现blog不适合Linux文档站点,因此我决心转到wiki了。还是觉得wiki排版方便。

    1. zwwooooo says:

      @tw 哈哈,blog的排版本来就较弱

  10. max says:

    这个要收藏!!

    1. max says:

      @max 我测试一下~

    2. max says:

      @max 非常完美,我喜欢!!

  11. 球犯 says:

    哈哈,这个最时候灌水大户了~

    1. zwwooooo says:

      @球犯 嗯,但我这里不水

  12. 万戈 says:

    最近流行玩无限嵌套?

    1. winy says:

      @万戈 你那里可以用来盖楼 :mrgreen:

    2. zwwooooo says:

      @万戈 你那里最需要,水王超多

  13. 久酷 says:

    大叔貌似比较清闲? :eek: :eek:

    1. zwwooooo says:

      @久酷 无奈,jiucool有什么工作介绍介绍? :mrgreen:

    2. 久酷 says:

      @zwwooooo 哈哈好啊,如果有合适的活 就让大叔来做 :mrgreen: :mrgreen:

    3. zwwooooo says:

      @久酷 非常期待 :grin:

  14. xux says:

    我要,我要~~~~

    1. winy says:

      @xux 真直白。。。

    2. xux says:

      @winy 是的~~~

      哈哈~~~

    3. xux says:

      @xux 就是异次元类似的把,美化一下更好看。

    4. zwwooooo says:

      @xux 去找美女吧 :mrgreen:

    5. xux says:

      @zwwooooo 反正也不会被5层压迫,多回复吧

    6. zwwooooo says:

      @xux 哈哈,2层多真整齐啊

  15. mice says:

    留着,我那个站用不到- -

    1. zwwooooo says:

      @mice 用到时再折腾

    2. mice says:

      @zwwooooo
      求你扣扣号,有事咨询..我在你QQ微博留言了的..

  16. 不错不错,我现在用的是阿邙的.还想问你下,你旁边的百度广告代码符合W3C吗?最近我也去申请了,不知道符合不符合... :?:

    1. zwwooooo says:

      @闲云野鹤 何必那么在意W3C呢?

  17. ifenwen says:

    华丽的嵌套功能

  18. 蛋卷 says:

    我来看看,用不到暂时

  19. 学习来了。 :lol:

  20. 阿修 says:

    等到这个了~~折腾去!~

    1. zwwooooo says:

      @阿修 慢慢折腾

回复给 闲云野鹤 ¬
取消回复

昵称 *

网址

B em del U Link Code Quote