前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >解决WordPress 5.1后回复评论框不跟随、页面刷新问题

解决WordPress 5.1后回复评论框不跟随、页面刷新问题

作者头像
空木白博客
发布2019-06-16 04:22:01
6980
发布2019-06-16 04:22:01
举报
文章被收录于专栏:空木白博客空木白博客

博客升级到 5.1.1 已经有一段时间了!但是一直都没留意到点击评论回复会有问题,今早无意间发现点击【回复】不单是评论框不出现还会刷新当前页面无法直接恢复,在主题没有修改的情况下出现这种问题估计是 WordPress 升级所致,网络上搜索一番发现果然是 WordPress 5.1 搞得鬼,因为 WP 更新了 comment-reply-link() 函数的输出。原本输出的 reply 按键,其 HTML 标签带有一个 onclick 事件,绑定了 addComment.moveForm() 事件,而在 WP 5.1 中,这个 onclick 事件被移除了。

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

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

代码语言:javascript
复制
/**
 * 修改评论回复按钮链接
 */
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;
    }
}

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 博客升级到 5.1.1 已经有一段时间了!但是一直都没留意到点击评论回复会有问题,今早无意间发现点击【回复】不单是评论框不出现还会刷新当前页面无法直接恢复,在主题没有修改的情况下出现这种问题估计是 WordPress 升级所致,网络上搜索一番发现果然是 WordPress 5.1 搞得鬼,因为 WP 更新了 comment-reply-link() 函数的输出。原本输出的 reply 按键,其 HTML 标签带有一个 onclick 事件,绑定了 addComment.moveForm() 事件,而在 WP 5.1 中,这个 onclick 事件被移除了。
  • 利用 WordPress 钩子修改“回复”按钮
相关产品与服务
网站建设
网站建设(Website Design Service,WDS),是帮助您快速搭建企业网站的服务。通过自助模板建站工具及专业设计服务,无需了解代码技术,即可自由拖拽模块,可视化完成网站管理。全功能管理后台操作方便,一次更新,数据多端同步,省时省心。使用网站建设服务,您无需维持技术和设计师团队,即可快速实现网站上线,达到企业数字化转型的目的。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档