如何禁止WordPress 5.1自动添加noopener noreferrer?

两岸青山对峙,绿树滴翠。一个真正的旅行家必是一个流浪者,经历者流浪者的快乐诱惑和探险意志。旅行必须流浪式,否则便不成其为旅行。

今天黑鸟博客博主反馈说 boke112 导航分享的下载链接都跳转到软文中而不是目标网址,经检查,这些下载链接都被添加了 noreferrer 属性,这就导致 document.referrer 获取不到上一个页面 URL 地址从而判定为非 boke112 导航链接而跳转到软文中。

这个自动为外部链接添加“noopener noreferrer”已经很久没有遇到过了,最近升级到 5.1.1 之后才出现,而且编辑文章直接删除“noreferrer”后更新文章还是会出现,说明是 WordPress 5.1 版本之后强制为每一个外部链接添加“noopener noreferrer”属性。所以想要禁止自动添加“noopener noreferrer”属性可以从以下方法挑选任一种添加到当前主题的 functions.php 文件中:

方法 1:禁止自动添加 noopener noreferrer

//新建或更新文章时移除 noreferrer
add_filter( 'wp_targeted_link_rel', 'my_targeted_link_rel_remove_noreferrer',999);
function my_targeted_link_rel_remove_noreferrer( $rel_values ) {
return preg_replace( '/noreferrer\s*/i', '', $rel_values );
}

//新建或更新文章时移除 noopener
add_filter( 'wp_targeted_link_rel', 'my_targeted_link_rel_remove_noopener',999);
function my_targeted_link_rel_remove_noopener( $rel_values ) {
return preg_replace( '/noopener\s*/i', '', $rel_values );
}

方法 2:禁止自动添加 noopener noreferrer

//仅移除前端 noreferrer,编辑器中依然存在
add_filter('the_content', 'my_formatter', 999);
function my_formatter($content) {
$replace = array(" noreferrer" => "" );
$new_content = strtr($content, $replace);
return $new_content;
}

//仅移除前端 noopener,编辑器中依然存在
add_filter('the_content', 'noopener_formatter', 999);
function noopener_formatter($content) {
$replace = array("noopener" => "" );
$new_content = strtr($content, $replace);
return $new_content;
}

以上两种方法的代码均来自@Builder Society

到此这篇关于如何禁止WordPress 5.1自动添加noopener noreferrer?就介绍到这了。只有认识自己,才能接受别人。更多相关如何禁止WordPress 5.1自动添加noopener noreferrer?内容请查看相关栏目,小编编辑不易,再次感谢大家的支持!