解决升级 WordPress 5.5 后回复按钮失效的办法

部分用户在升级 wordpress 5.5 后发现回复按钮失效。其实这个问题在 WordPress 5.1 时就出现过,大部分出现在自定义了评论函数或者使用 Ajax 评论的主题中。

症状是:点击回复按钮刷新页面,并且评论表单不能嵌套。问题原因是 WordPress 开发人员,修改了评论核心文件。经测试貌似是修改了 wp-includes\js 目录的 comment-reply.js 文件,用 5.4.2 版本的文件替换后,问题消失。同一个问题出现两次,有点太不顾成千上万的主题用户了,也没有明确的说明文件,只顾折腾块编辑器。解决办法,可以尝试将下面的代码加到主题 functions.php 中:

 

  1.     add_filter( 'comment_reply_link', 'mytheme_replace_comment_reply_link', 10, 4 );
  2.     function mytheme_replace_comment_reply_link( $link, $args, $comment, $post ){
  3. 
    
  4.     	if ( get_option( 'comment_registration' ) && ! is_user_logged_in() ) {
  5.     		$link = sprintf( '<a rel="nofollow" class="comment-reply-login" href="%s">%s</a>',
  6.     			esc_url( wp_login_url( get_permalink() ) ),
  7.     			$args['login_text']
  8.     		);
  9.     	} else {
  10.     		$onclick = sprintf( 'return addComment.moveForm( "%1$s-%2$s", "%2$s", "%3$s", "%4$s" )',
  11.     			$args['add_below'], $comment->comment_ID, $args['respond_id'], $post->ID
  12.     		);
  13. 
    
  14.     		$link = sprintf( "<span class='comment-reply-link' data-href='%s' onclick='%s' aria-label='%s'>%s</span>",
  15.     			esc_url( add_query_arg( 'replytocom', $comment->comment_ID, get_permalink( $post->ID ) ) ) . "#" . $args['respond_id'],
  16.     			$onclick,
  17.     			esc_attr( sprintf( $args['reply_to_text'], $comment->comment_author ) ),
  18.     			$args['reply_text']
  19.     		);
  20.     	}
  21.     	return $link;
  22. 
    
  23.     }

该方法之前用于 WP5.1,同样适用于 W5.5,可以适当修改其中的 class 适应自己的主题结构。程序自带的代码位于 wp-includes 目录 comment-template.php 大约 1817 行。另外,WordPress 5.5 与主题和插件不兼容的问题很多,在官网上层出不穷。

因 WordPress 5.5 并没有安全类的更新,也没有中文版,用之前的语言文件,后台存在大量的异族文字,目前我自己并没有升级,估计中文版这次又是遥遥无期了。WordPress 5.5 更新重点还是折腾区块编辑器而已,顶着绝大部人的反对,费力不讨好地开发区块编辑器新功能,如果开发人员看了“Classic Editor(经典编辑器)”切换插件,5+百万的下载安装量,不知道会是个什么滋味。

官方之前说 2022 后,彻底移除经典编辑器,到时如果没有替代品,对广大用户是一个灾难,对 WordPress 也会是一个极大的损失,会有人抛弃 WordPress 转投其它程序。

更多关于WordPress技术教程可加群257938777交流。
版权声明:admin 发表于 2020-10-08 9:36:52。
转载请注明:解决升级 WordPress 5.5 后回复按钮失效的办法 | WordPress中文站长导航

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...