WordPress 原生嵌套 ajax 评论的实现

泪流满面
我都快不记得我最早用的wordpress是什么版本号了,总之一路升级过来经历了很多个版本,模板也因为各版本的升级改动了很多。特别是当wordpress 2.7出来的时候,我们再也不需要使用第三方插件来实现评论的嵌套了,因为它已经内置了。由于我的懒散以及一直假装很忙作为借口,并且舍不得之前的评论模式,所以一直没有让我的主题支持原生的嵌套评论。

昨天心血来潮,关了IM,关了google reader,关了可能会干扰我的各类网页,开始琢磨wordpress 2.7的原生嵌套。一开始是直接套用的default主题里的comment.php文件,由于2.7版本之后引入了wp_list_comments()函数来显示评论列表,而想特别修改评论列表格式的话就需要使用callback。主要参考了 saywp 主题的callback代码,然后参考了 willin实现的ajax。虽然累死我了,好歹是修改成功了。willin 的ajax 评论代码改了好久,因为他的代码写得可真多,我去掉了很多对自己没用的并且在ajax插入嵌套评论到评论列表的时候换了一种更好的实现方法。

如果你的主题还是2.7之前的无嵌套评论,并且你喜欢嵌套评论,我建议你还是趁早升级吧哈。wordpress版本号越来越大,改动也越来越大,如果以后再升级可就要越来越不容易了。正所谓与时俱进嘛。更何况我是个“新版软件控”!

至于让主题支持原生嵌套评论我这里就不介绍了,网上真的有一搜一大把的文章介绍了这个内容。

为了让评论向前兼容,所以我的嵌套评论保留了原来的@username的回复方式,哪怕哪一天我突然不想嵌套了,我也可以很快恢复原先的样式并且保留之前的完美形式(鼠标移动到@username会popup出user的原评论)!正因为继续保留了之前的@username的回复方式,所以我认为我的评论只需要采用二级嵌套就足够了,三级或者更多级的话不管是样式不好设计和控制,而且太多回复的时候很容易造成混乱的局面。二级嵌套的意义在于每一条评论表达的是评论者的核心价值观,对此的嵌套回复一般是对该条评论的回复,如果多一级成为三级嵌套,很容易就变成聊天了,确实很三级。

Wordpress 原生嵌套评论ajax的实现

欢迎测试!

PS:真的是累坏了。接下来,还有一大堆别的要累坏我的事情要做。360度冰天雪地托马斯回旋45度角仰望天空直至内牛满面鸡皮疙瘩掉一地。

  • http://book-of-days.cn Sean

    沙发支持一下,好强大,不过我的主题对套嵌支持不够,有排版错误,所以我就不用了呵呵 :???:

    • http://leeiio.me/ Leeiio

      @Sean 我之前的主题也是对嵌套样式支持不够,这次是重写的哈。

    • http://www.jutoy.net Jutoy

      @Leeiio 来测试~~话说我一直没用原生嵌套……

    • http://leeiio.me/ Leeiio

      @Jutoy 话说,你是用thread comment这个插件的?

    • http://www.jutoy.net Jutoy

      @Leeiio 嗯,是啊

    • http://www.birduser.net birduser

      @Leeiio 俺是测试

    • http://www.phonele.com 手机元素

      @Leeiio
      俺也来测试

    • http://xiaoyan.me xiaoyan

      @birduser
      也是来测试的!

  • http://lanhl.com lanhl

    哈哈,我也是新版本控,有新版出来不升级心里就觉得不爽。

    • http://leeiio.me/ Leeiio

      @lanhl 哈哈,敢情是同道中人啊。 :lol:

    • http://www.eemir3.com/ yacca

      @Leeiio test

    • http://leeiio.me/ Leeiio

      @yacca 哈哈,目前除了点击回复的框是显示在对顶端显得不怎么完美外,其他应该不会有什么bug了。

  • http://wange.im 万戈

    哈,我也用的是willin大师的方法~

    • http://leeiio.me/ Leeiio

      @万戈 我认为他提供的代码有一个地方比较好是在于整合官方提供的嵌套js,这样头部就不用引入多一个js了。但是因此造成的问题就是代码太多,容易看晕。

    • http://www.jutoy.net Jutoy

      @万戈 放假我也弄弄ajax评论

    • znoe

      @万戈 一直难以实现 郁闷

  • http://www.qiqiboy.com/blog QiQiBoY

    @Leeiio
    Jinwen提供的方法总是克隆第一级评论的回复按钮到子回复,导致你点击任何子回复按钮都会让回复框跳到第一级评论下面,就好像还是给第一级回复一样。。。。这点很别扭。。。还不如将所有除第一级回复以外的回复样式都按平级化设置。。。后台设置无限嵌套。。。。
    另外刚出的火狐3.6RC下由于评论者名字后的信息太长而导致回复按钮换行,和下面的@user重合。。。。

    • http://www.qiqiboy.com/blog QiQiBoY

      @QiQiBoY 点击取消回复怎么没清除回复框中文字。。。。。 :???:

    • http://leeiio.me/ Leeiio

      @QiQiBoY 呃,可以截图发地址看看么?难道3.6RC对inline-block支持有问题?

    • http://leeiio.me/ Leeiio

      @QiQiBoY 呃,之前用的是empty()清除,后台我改方法用value注入textarea了,才发现还是empty()清除,现在修正了。感谢抓虫! :roll:

  • http://aimbu.com slwl

    :mrgreen: 过来帮忙测试。

    • http://leeiio.me/ Leeiio

      @slwl 感谢测试哈!

  • http://www.naease.com Panther

    竟然都是Windows7

    • http://leeiio.me/ Leeiio

      @Panther 还在坚持windows系统的自然是7版本优先啦,以前vista出来的时候我还舍不得xp,7出来了还忧郁了一下,装上用了后就把xp抛一边了… :idea:

  • http://shilaoren.net 石老人

    现在2.91了啊

    • http://leeiio.me/ Leeiio

      @石老人 是啊,都2.9.1了,我的评论部分总算是与时俱进了

  • http://zreading.cn 左岸读书

    也许哪一天wordpress自己就可以了~

    • http://leeiio.me/ Leeiio

      @左岸读书 呃,自己肯定是没法可以的,那些老主题都是不支持嵌套的

  • http://blog.zhengyuzhong.com 羽中

    typecho自带支持嵌套,抽空我要使劲研发个ajax评论~ 话说你这没用评论分页吗?分页可能会把嵌套拆开郁闷

    • http://leeiio.me/ Leeiio

      @羽中 呃,wordpress也自带嵌套啊。。因为评论不多,所以没分页哈,分页会把嵌套拆开?真逊啊

    • http://blog.zhengyuzhong.com 羽中

      @Leeiio 是啊,就是分页底部评论的回复会被算到第二页上,WP也存在这问题,囧,还是加上@稳妥

  • http://lorz.me Lorz

    纯洁的 test

  • http://imbolo.com bolo

    被文章那幅图欺骗了,还以为是真的评论框

  • http://www.iqbee.cn 吖Bee

    放假就来折腾,哈哈!

  • http://uliao.com shellc

    纯测试

  • http://dddspace.com alswl

    配图大亮
    目前还在使用非嵌套的,下一个主题想换成嵌套的,用户体验会好很多

    • http://leeiio.me/ Leeiio

      @alswl 嵌套的好处主要是回复更清晰看起来。

  • http://vvvvvv.us/ 蓝冰

    等3。0

  • http://www.cspromod.cn/ lee

    不能共享这个修改吗?

    • http://leeiio.me/ Leeiio

      @lee 你再仔细看,文中已经给出了。

  • http://chisdy.com chisdy

    挺不错的,过了年再研究下,哈哈!

  • http://sosostudy.cn Gos32

    搞代码还是真累啊
    :?:

    • http://leeiio.me/ Leeiio

      @Gos32 搞什么都累…

  • http://www.wancheng.li

    :eek: 你这主题很美妙啊

    • http://leeiio.me/ Leeiio

      @成 谢谢,感谢关注哈

  • http://t.twetw.com/ aisinvon

    寻找如何让wordpress ajax评论,就找到你这来拉

  • http://jie.im

    我根据教程,但是自己测试的时候点击提交后,前面已经有的评论变成文本格式了,没有了css样式,不知道是不是css要修改还是路径问题

    • http://www.hofire.com mike

      @洁
      能回复不呢?

  • http://www.0575r.com 小杜博客

    来学习下~

  • http://www.freewo.com adu

    真的很不错哦,不知可否分享一下你的代码

  • http://snowxh.in/ snowxh

    原先不带@user的话要怎么改成带的这种嵌套呢= =弱问

  • http://www.lokeno.com loke

    可惜啊,我什么都没用。

  • http://huangang.info 顺水横流

    侧边栏关闭了,为啥广告不关闭捏????

  • キミキスキミキス

    キミキスキミキスキミキスキミキス

  • http://home.pomoho.com/langzifangyan/10686309 jj

    :mad:

  • http://www.hofire.com mike

    回复测试

  • http://www.hofire.com mike

    能不能在回复里上传视频或文件并显示出来呢?

  • http://yesstars.com 夏星辰

    分享下呗。像用用

  • http://bofeng.me/ 泊风

    请教如何修改”提交成功, 刷新页面之前可以再编辑“这句提示的显示位置及字体大小。

  • http://ellic.info ellic

    学习一下。

  • http://www.zhuifeng.cc 追风

    ajax回复试下

  • http://www.mikzz.com 小野miku~~

    测试下呢

  • 蜗牛

    我看看嵌套是什么样的。。。

  • http://www.g.cn 大鸟哥

    :mad: :mad: :mad:
    主题在chrome下好像走样了//

  • http://www.fdoing.cn 郑州网站推广

    目前是否还可用?

  • http://beifly.com beifly

    风反复反复反复发反反复复

    • http://leeiio.me/ Leeiio

      @beifly 别测试了。本站刚改版,原来的ajax评论暂时没有加回去。