首页 » 网站建设 »

wordpress自动加noreferrer的原因,以及清除的方法

2019年6月29日 / 42次阅读
WordPress

近期新版的WordPress,在编辑文章中的链接时,给链接自动增加了noreferrer和noopener属性。为什么?如何清除?

增加noreferrer和noopener属性,是为了安全,防止你的浏览器窗口被劫持。

Noopener is fine. It just stops the destination site from hijacking YOUR tab (reverse tabnabbing) when you have a user open a link with target="_blank".

noopener没问题,很好理解,nice。

Noreferrer is only there because some legacy browsers don't use Noopener yet, but support Noreferrer in a way that prevents tabnabbing. The problem is that it stops referrer data from being sent.

增加noreferrer,是为了对古老的浏览器支持。但是带来的问题是,referer数据丢失了。

referer数据丢失,有没有SEO的影响,其实是有一点的。

如果你的文章内有一些内部链接,用户点击这些内部链接,如果没有referer,网站统计代码可能会认为这是一个直接访问,网站跳出率增加了。

不过,这个影响不是很大。必经,wordpress自动增加的这两个属性,只对文章内链接有效,网站框架部分的链接不会受到影响。wordpress这样做的初衷,就是给“外部”链接加个安全锁,不过误伤了文章内自己手动添加的内部链接。

那么,如果移除noreferer呢?(noopener可以留着)

首先,不要去尝试手动删除,这时徒劳的,因为你每一次编辑文章内容,wordpress系统都会自动给文章内的链接都加上noreferer,你忙不过来的。

一个比较好的方式,不管后台,只是在前台页面显示的时候,通过过滤器去掉所有的noreferrer属性。代码如下:

//remove noreferrer on the frontend, *will still show up in the editor.*
function no_referrer($content) {
    $replace = array("noreferrer" => "" );
    $new_content = strtr($content, $replace);
    return $new_content;
}
add_filter('the_content', 'no_referrer', 999);

将这段代码加入functions.php文件。这段代码的作用是:前台调用the_content函数输出网页的时候,增加no_referrer过滤器,将所有的noreferrer清除。

本文链接:https://www.maixj.net/wz/wordpress-noreferer-21872

相关文章

留言区

《wordpress自动加noreferrer的原因,以及清除的方法》有1条留言

  • 麦新杰

    本域名于此相关的修改,要看具体代码,注意classic editor与最近的Gutenberg编辑器细节上不太一样。 []


前一篇:
后一篇:

栏目精选

云上小悟,麦新杰的独立博客

Ctrl+D 收藏本页

栏目


©Copyright 麦新杰 Since 2014 云上小悟独立博客版权所有 备案号:苏ICP备14045477号-1。云上小悟网站部分内容来源于网络,转载目的是为了整合信息,收藏学习,服务大家,有些转载内容也难以判断是否有侵权问题,如果侵犯了您的权益,请及时联系站长,我会立即删除。

网站二维码
go to top