WordPress 5.*禁止编辑器自动添加noopener noreferrer

WordPress 5.*禁止编辑器自动添加noopener noreferrer
因为本站使用了go跳转链接,为安全方面考虑需添加referrer判断合法来源,$_SERVER['HTTP_REFERER']一直取不到值,原因是因为所以链接编辑器自动添加了“noopener noreferrer”属性,应该是WordPress 5.1 版本之后强制为每一个外部链接添加“noopener noreferrer”属性。为禁止编辑器自动为外部链接添加“noopener noreferrer”属性可以使用以下方法添加到当前主题的functions.php文件中:

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

<span class="hljs-comment">//新建或更新文章时移除 noreferrer</span>
add_filter( <span class="hljs-string">'wp_targeted_link_rel'</span>, <span class="hljs-string">'my_targeted_link_rel_remove_noreferrer'</span>,<span class="hljs-number">999</span>);
<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">my_targeted_link_rel_remove_noreferrer</span><span class="hljs-params">( $rel_values )</span> </span>{
<span class="hljs-keyword">return</span> preg_replace( <span class="hljs-string">'/noreferrers*/i'</span>, <span class="hljs-string">''</span>, $rel_values );
}
<span class="hljs-comment">//新建或更新文章时移除 noopener</span>
add_filter( <span class="hljs-string">'wp_targeted_link_rel'</span>, <span class="hljs-string">'my_targeted_link_rel_remove_noopener'</span>,<span class="hljs-number">999</span>);
<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">my_targeted_link_rel_remove_noopener</span><span class="hljs-params">( $rel_values )</span> </span>{
<span class="hljs-keyword">return</span> preg_replace( <span class="hljs-string">'/noopeners*/i'</span>, <span class="hljs-string">''</span>, $rel_values );
}
<span class="hljs-comment">//新建或更新文章时移除 noreferrer</span>
add_filter( <span class="hljs-string">'wp_targeted_link_rel'</span>, <span class="hljs-string">'my_targeted_link_rel_remove_noreferrer'</span>,<span class="hljs-number">999</span>); 
<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">my_targeted_link_rel_remove_noreferrer</span><span class="hljs-params">( $rel_values )</span> </span>{ 
<span class="hljs-keyword">return</span> preg_replace( <span class="hljs-string">'/noreferrers*/i'</span>, <span class="hljs-string">''</span>, $rel_values ); 
} 

<span class="hljs-comment">//新建或更新文章时移除 noopener</span>
add_filter( <span class="hljs-string">'wp_targeted_link_rel'</span>, <span class="hljs-string">'my_targeted_link_rel_remove_noopener'</span>,<span class="hljs-number">999</span>); 
<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">my_targeted_link_rel_remove_noopener</span><span class="hljs-params">( $rel_values )</span> </span>{ 
<span class="hljs-keyword">return</span> preg_replace( <span class="hljs-string">'/noopeners*/i'</span>, <span class="hljs-string">''</span>, $rel_values ); 
}
//新建或更新文章时移除 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( '/noreferrers*/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( '/noopeners*/i', '', $rel_values ); }

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

<span class="hljs-comment">//仅移除前端 noreferrer,编辑器中依然存在</span>
add_filter(<span class="hljs-string">'the_content'</span>, <span class="hljs-string">'my_formatter'</span>, <span class="hljs-number">999</span>);
<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">my_formatter</span><span class="hljs-params">($content)</span> </span>{
$replace = <span class="hljs-keyword">array</span>(<span class="hljs-string">" noreferrer"</span> => <span class="hljs-string">""</span> );
$new_content = strtr($content, $replace);
<span class="hljs-keyword">return</span> $new_content;
}
<span class="hljs-comment">//仅移除前端 noopener,编辑器中依然存在</span>
add_filter(<span class="hljs-string">'the_content'</span>, <span class="hljs-string">'noopener_formatter'</span>, <span class="hljs-number">999</span>);
<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">noopener_formatter</span><span class="hljs-params">($content)</span> </span>{
$replace = <span class="hljs-keyword">array</span>(<span class="hljs-string">"noopener"</span> => <span class="hljs-string">""</span> );
$new_content = strtr($content, $replace);
<span class="hljs-keyword">return</span> $new_content;
}
<span class="hljs-comment">//仅移除前端 noreferrer,编辑器中依然存在</span>
add_filter(<span class="hljs-string">'the_content'</span>, <span class="hljs-string">'my_formatter'</span>, <span class="hljs-number">999</span>);
<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">my_formatter</span><span class="hljs-params">($content)</span> </span>{
$replace = <span class="hljs-keyword">array</span>(<span class="hljs-string">" noreferrer"</span> => <span class="hljs-string">""</span> );
$new_content = strtr($content, $replace);
<span class="hljs-keyword">return</span> $new_content;
}

<span class="hljs-comment">//仅移除前端 noopener,编辑器中依然存在</span>
add_filter(<span class="hljs-string">'the_content'</span>, <span class="hljs-string">'noopener_formatter'</span>, <span class="hljs-number">999</span>);
<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">noopener_formatter</span><span class="hljs-params">($content)</span> </span>{
$replace = <span class="hljs-keyword">array</span>(<span class="hljs-string">"noopener"</span> => <span class="hljs-string">""</span> );
$new_content = strtr($content, $replace);
<span class="hljs-keyword">return</span> $new_content;
}
//仅移除前端 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; }

以前添加的rel=”noopener noreferrer”属性怎么去除?

登录phpmyadmin执行sql语句:

<span class="hljs-keyword">UPDATE</span> wp_posts <span class="hljs-keyword">SET</span> post_content = <span class="hljs-keyword">REPLACE</span>( post_content, <span class="hljs-string">'noopener noreferrer'</span>, <span class="hljs-string">''</span> )
<span class="hljs-keyword">UPDATE</span> wp_posts <span class="hljs-keyword">SET</span> post_content = <span class="hljs-keyword">REPLACE</span>( post_content, <span class="hljs-string">'noopener noreferrer'</span>, <span class="hljs-string">''</span> )
UPDATE wp_posts SET post_content = REPLACE( post_content, 'noopener noreferrer', '' )

特别提醒:执行前切记备份数据库!!!

内容看完了
© 版权声明
1:本网站名称:蜡笔傻新
2:本站永久网址:https://labishaxin.com/
3:本站部分内容收集于互联网,如果有侵权内容、请联系我们删除,不妥之处,敬请谅解
4:本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责
5:本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
6:本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新
点赞0赞赏 分享
评论 抢沙发

请登录后发表评论