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度角仰望天空直至内牛满面鸡皮疙瘩掉一地。

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

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

    • @lanhl 哈哈,敢情是同道中人啊。 😆

    • @Leeiio test

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

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

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

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

    • znoe

      @万戈 一直难以实现 郁闷

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

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

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

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

  • :mrgreen: 过来帮忙测试。

  • 竟然都是Windows7

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

  • 现在2.91了啊

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

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

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

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

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

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

  • 纯洁的 test

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

  • 放假就来折腾,哈哈!

  • 纯测试

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

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

  • 等3。0

  • lee

    不能共享这个修改吗?

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

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

  • 搞代码还是真累啊

  • 😮 你这主题很美妙啊

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

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

  • 来学习下~

  • adu

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

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

  • 可惜啊,我什么都没用。

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

  • キミキスキミキス

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

  • jj

    😡

  • 回复测试

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

  • 分享下呗。像用用

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

  • 学习一下。

  • ajax回复试下

  • 测试下呢

  • 蜗牛

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

  • 😡 😡 😡
    主题在chrome下好像走样了//

  • 目前是否还可用?

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

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

    • q

      不错,试一下