腾讯云服务器优惠活动华纳云香港服务器

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

WordPress主题推荐

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

如何禁止WordPress 5.1自动添加noopener noreferrer?-第1张-boke112百科(boke112.com)

这个自动为外部链接添加“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

本文地址:https://boke112.com/post/6573.html

赞 (0) 打赏
版权声明:本文为原创文章,版权归 boke112百科 所有,欢迎分享本文,转载请保留出处!发布此文是出于传递更多信息之目的,若有来源标注错误或侵犯了您的合法权益,请联系我们,确认后马上更正或删除,谢谢!
wu