今天早上闲着无聊点了一下 WordPress 更新按键,从 5.0.3 更新到了 5.1,没想到出现了评论回复按键失效的问题,瞬间懵逼,因为电脑不方便联网根本没法排查故障,结果 bug 挂了一整天=.=
回来仔细看了一下,发现问题是因为 WP 更新了 comment-reply-link()
函数的输出。原本输出的 reply 按键,其 HTML 标签带有一个 onclick
事件,绑定了 addComment.moveForm()
事件,Sakura 主题、以及正在写的 Gorgeous 主题评论回复都利用了这个 onclick
事件,而在 WP 5.1 中,这个 onclick
事件被移除了,如图,上方的是 WP 5.1,下方是 WP 5.0:
因此修复这个问题的方法就是为 reply 按键添加一个 click 事件监听器。以 Sakura 主题为例,用 jQuery 实现:
$('body').on('click', '.comment-reply-link', function(){
addComment.moveForm( "comment-"+$(this).attr('data-commentid'), $(this).attr('data-commentid'), "respond", $(this).attr('data-postid') );
return false; // 阻止 a tag 跳转,这句千万别漏了
});
对于 WP 这个改动的出发点我觉得挺好,因为总感觉 inline 的 onclick 事件挺 low 的(虽然 Sakura 主题里面用了不少23333),不过忽然这样毫无征兆和说明地取消原有接口挺不好,WP 本应提供一个 hook 让我们可以自由地决定是否保留原有方法,不是吗?
「樱花庄的白猫」原创文章:《修复 WordPress 5.1 评论回复按键失效问题》,转载请保留出处!https://2heng.xin/2019/02/23/fix-wordpress-5-1-comment-reply-link-onclick-event/
Q.E.D.
Comments | 61 条评论
博主 花彌漫.
封面好好看(暗示)
博主 G.G
久仰博主,特来观摩,大佬🐂🍺
博主 hi茼蒿!
cool
博主 ll
呵呵呵
博主 Dreamer
这Bug还没完,举个栗子啊,你先点下我这条评论下的REPLY,然后你翻评论页码,Duang!没错,评论框被我吃了,嗯,真香。
博主 codeInk 寇墨
@Dreamer 膜拜大佬
博主 Ruoruier
老哥真的顶!
博主 Drew
8说了,大佬6啤!
博主 Mr.Li
8说了,大佬6啤!
博主 fanfan
@Mr.Li 666
博主 隔壁邻居
能不能在主题介绍那边写一个相关文章介绍这个主题用md编辑的语法实现 实战您博客主题介绍文章那种页面效果
博主 Sakuya
@隔壁邻居 赞同 赞同 特别是文章里的小图标不知道如何在markdown里写出来
博主 Mashiro
@Sakuya 表情的话,把评论框里的表情短代码复制到文章里就行了,如果说其他小图标的话,应该是我直接用html插在文章里的吧,和markdown没关系
博主 Mashiro
@隔壁邻居 可以参科wiki:https://github.com/mashirozx/Sakura/wiki/Writing-with-Markdown-Grammar