记录一些常用的函数和瞎折腾的过程……

升级到wordpress5.1后ajax评论回复按钮异常

提醒:本文最后更新于 1261 天前,文中所描述的信息可能已发生改变,请谨慎使用。

升级到WordPress 5.1后,生成“回复”链接的comment_reply_link函数和comment-reply.js文件都更新了。如果使用了ajax提交评论,此时点击回复按钮就可能异常,如没响应。

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

$onclick = sprintf( 'return addComment.moveForm( "%1$s-%2$s", "%2$s", "%3$s", "%4$s" )',$args['add_below'], $comment->comment_ID, $args['respond_id'], $post->ID );

ajax提交评论我用的是大发的版本,里面相应的代码如下:

<span class="reply">
<?php comment_reply_link( array_merge( $args, array( 'add_below' => $add_below, 'depth' => $depth, 'max_depth' => $args['max_depth'] ) ) ); ?>
</span>

将上面的代码修改为下面的,自己构造onclick事件:

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

然后再试试,好像就同什么问题了。

针对wordpress版本大于5.1时,ajax评论失效和问题,原作者进行了更新,可以直接使用下面的程序,具体使用方法参考《wordpress中通过ajax提交评论》。

下载地址:ajax-comment-2.0