今天黑鸟博客博主反馈说 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?内容请查看相关栏目,小编编辑不易,再次感谢大家的支持!