最近WordPress 5.1升级,很多童鞋更新到 5.1,出现了评论回复按键失效的问题,刷新当前页面也无法直接恢复,在主题没有修改的情况下出现这种问题是 WordPress 升级所致,
WordPress 5.1更新了 comment-reply-link() 函数的输出。
原本输出的 reply 按键,其 HTML 标签带有一个 onclick 事件,绑定了 addComment.moveForm() 事件,很多主题评论回复都利用了这个 onclick 事件,而在 WP 5.1 中,这个 onclick 事件被移除了。如果要解决问题,还是要主题作者更新才能彻底解决这个问题。不过也可以通过jQuery 实现:
如图,上方的是 WP 5.1,下方是 WP 5.0:
因此修复这个问题的方法就是为 reply 按键添加一个 click 事件监听器。代码如下:
$('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 跳转,这句千万别漏了 });
对于WordPress 5.1这个改动的出发点,是很好,因为总感觉 inline 的 onclick 事件挺 low 的,不过忽然这样毫无征兆和说明地取消原有接口挺不好,WP 本应提供一个 hook 让我们可以自由地决定是否保留原有方法,不是吗?