修复 WordPress 5.1 评论回复按键失效问题

WordPress 5.1『回复』链接生成 comment_reply_link 函数更新,生成的回复链接没有了 onclick,导致一部分主题『回复』按钮失效——回复评论时发现要点两次『回复』才能把 @xx 填进评论框,第一次点『回复』会刷新页面,第二次点才不会刷新。并且 comment-form 位置不会移动到要回复的评论下面。

有几种方法可修复此问题:

修改『回复』按钮代码

详见:

WordPress 5.1,累……

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

使用 js 为 reply 按键添加一个 click 事件监听

来源:樱花庄的白猫,为 reply 按键添加一个 click 事件监听,用 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 跳转,这句千万别漏了
});

注意:comment-要与主题的评论结构一致,比如有些主题是 comment-评论 ID,有些主题就是 div-comment-评论 ID……如果不一致评论框就嵌套不到评论内容下方。

利用 WordPress 钩子修改“回复”按钮

此方法兼容最佳,在主题 functions 文件里加入如下代码:

/**
* 修改评论回复按钮链接
*/
global $wp_version;
if (version_compare($wp_version, '5.1.1', '>=')) {
add_filter('comment_reply_link', 'theme_replace_comment_reply_link', 10, 4);
function theme_replace_comment_reply_link($link, $args, $comment, $post)
{
if (get_option('comment_registration') && !is_user_logged_in()) {
$link = sprintf(
'<a rel="nofollow" class="comment-reply-login" href="%s">%s</a>',
esc_url(wp_login_url(get_permalink())),
$args['login_text']
);
} else {
$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
);
$link = sprintf(
"<a rel='nofollow' class='comment-reply-link' href='%s' onclick='%s' aria-label='%s'>%s</a>",
esc_url(add_query_arg('replytocom', $comment->comment_ID, get_permalink($post->ID))) . "#" . $args['respond_id'],
$onclick,
esc_attr(sprintf($args['reply_to_text'], $comment->comment_author)),
$args['reply_text']
);
}
return $link;
}
}

来源:后宫学长

声明:除非注明,常阳时光文章均为原创
本文地址:https://cyhour.com/1046/
转载时必须以链接形式注明原始出处。
Views: 523 Tags:  , 

Comments:3

  1. 这条post怎么之前没看到。
    这条js要加载在什么文件里?我在function里加入了
    wp_enqueue_script( 'exif', $dir . 'js/onclick.js');
    貌似没用。

    2019.03.26 23:06 # 回复
    1楼
    • @老虎 去除了?没看到有。加到主题的 js 文件里面应该可以啊。

      2019.03.27 08:59 # 回复
      • @老杨 没成功。后来托大发更新了puma,重新换主题了。

        2019.03.30 22:59 # 回复

发表留言

炒蛋:Vultr 送$25 | 搬瓦工年付$19补货,优惠码 BWH34QMFYT2R | 推荐VPS信息