升级wordpress5.1后评论回复表单未跟随

LinSan2019年03月14日wordpress,

有些东西我是纠结了很久,比如评论回复之体验。 自从WordPress 5.0.3升级到WordPress 5.1后,林三这里评论的回复按钮就异样,点击后居然对页面进行了刷新,且网址也出现了难看的id后缀。强迫症使我研究,逼我奋进,但苦于技术不行也是痛苦万分,辗转反侧。

升级wordpress5.1后评论回复表单未跟随

两三天,群里“久伴亦久别”交流许久,青衫慧童鞋热心协助,却没有搞清楚我要什么,但林三这里仍然非常感谢,这是温暖和友谊。接着在今天的晚上,收到青山的留言,说找到了有用的信息,我粗略阅读,觉得正是我需要的代码,顿觉光明无限,青山真是个好同志,给力!

那是《常阳时光》的一篇技术吐槽文:传送门,但是对我有用,也有启发。

以下引用自其文章《WordPress 5.1,累……》:

前几天后台升级到 WordPress 5.1,目测没有什么异样。不过回复评论时发现要点两次『回复』才能把 @xx 填进评论框,第一次点『回复』会刷新页面,第二次点才不会刷新。并且 comment-form 位置不会移动到要回复的评论下面。

对比了一下 WordPress 5.0.3 与 WordPress 5.1 源码,发现『回复』链接生成 comment_reply_link 函数和 comment-reply.js 文件都更新了。用了 ajax 提交评论,不需要用到 comment-reply.js。

会出现这个问题是因为新版 comment_reply_link 函数生成回复链接没有了 onclick ...

然后展示了几段代码进行说明,林三琢磨这将 inc/function/comment-template.php 内的关于回复的代码,也就是 <span class="reply">代码</span>,替换成如下:

  1. <span class="reply">
  2.     <a class="comment-reply-link" href="javascript:;" onclick="return addComment.moveForm('comment-<?php comment_ID() ?>', '<?php comment_ID() ?>', 'respond', '<?php the_ID(); ?>')">回复</a>
  3. </span>

刷新有评论的页面后,发生升级wordpress5.1后的问题稍有解决(评论表单会跟随了,但是却在该评论的li标签外面,以前是在里面的,等以后研究好了再优化吧)。些许不完美的地方,以后终将修复,另外还有个文章有些内容值得借鉴,这里做下笔记:wordpress评论回复表单1

那是2014年的文章,有些老,但逻辑思想是没错的。我个人觉得wp自带的评论js要尽量去引用才不会出问题。这次我的begin4.4主题是另外写的,所以才冲突,begin4.6有个ajax开关,关闭后问题居然可以解决,可惜我没有开关。wp-inclues/js/comment-reply.js 值得研究...

avatar

目前评论:10   其中:访客  5   博主  5

    • avatar 青山 3

      :grin: 有没有ajax评论的教程,我博客主题没有ajax,有点难受

        • avatar LinSan Admin

          并不会ajax评论哇,可以开启ajax评论,然后根据我下片日志的方法来改,不久行了么。

            • avatar 青山 3

              新头像好看不 :grin:

                • avatar LinSan Admin

                  很靓啊,蓝得有点绿,哈哈!

            • avatar 从良未遂 2

              稳住、稳住,暂时不升级

              • avatar 老杨 1

                确实跳到外面了,我那里也是这样。应该还有地方没改好,或者ajax那个js也要适配。

                  • avatar LinSan Admin

                    你要是研究好了,记得通知我啊,免得我重新学习嘛,嘿嘿!

                    • avatar LinSan Admin

                      我最近是没法学习ajax和js啦,如果有什么新的解决教程,要来告诉我哟。

                        • avatar 老杨 1

                          发现问题了,comment-<?php comment_ID() ?> 需与主题评论结构 li 里层的 id 或者 class 一致。比如你目前这个主题,改成 div-comment-<?php comment_ID() ?> 应该就好了。

                            • avatar LinSan Admin

                              完美解决啊,老杨,爱死你了!给你点赞!2k个赞!

                      发表评论

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