升级到wordpress5.1后ajax评论回复按钮异常
升级到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