wordpress图片加“no-referrer”标签解决防盗链问题

自从微博图床开防盗链后,好多图片都挂了,找了一堆资料,终于发现在head标签没添加一行代码meta就能解决,但是会造成百度统计数据异常,请谨慎使用。

代码

  1. <meta name="referrer" content="no-referrer" />

referrer的状态

 

标签内使用no-referrer

  1. <a href="http://example.com" referrer="no-referrer|origin|unsafe-url">xxx</a>
  2. <img referrerpolicy="no-referrer|origin|unsafe-url" src="{{item.src}}"/>
  3. <image referrerpolicy="no-referrer|origin|unsafe-url" src="{{item.src}}"></image>

经测算,标签内使用此方法可以解决百度统计问题,又可突破图片的防盗链。

 

自动给所有图片加 referrerpolicy属性,请用以下代码

下面的代码直接加到 functions.php 中即可

/** Auto-Generate no-referrer for images */
function image_no_referrer($content){
    global $post;preg_match_all('/<img (.*?)\/>/', $content, $images);
    if(!is_null($images)) {foreach($images[1] as $index => $value)
    {
        $new_img = str_replace('<img', '<img referrerpolicy="no-referrer" ', $images[0][$index]);
        $content = str_replace($images[0][$index], $new_img, $content);}}
    return $content;
}
add_filter('the_content', 'image_no_referrer', 99999);

 

wordpress图片加“no-referrer”标签解决防盗链问题
标签: