采集的图片由于防盗链无法显示的一个解决方法

现在有这样的需求:批量采集微信公众的文章到自己的网站,批量采集“虎嗅”的文章到自己网站。其中一个比较大的障碍是原始图片地址在我们网站是无法显示的。

他们通过 HTTP 请求头中的 referrer 值即请求来源来判断是否返回数据以达到防盗链的目的。部分直播源也会用这种方式防止被白嫖。需要知道的是我们的网站在进行 http 请求的时候一般都会自动地设置 referrer 为网站地址。

《采集的图片由于防盗链无法显示的一个解决方法》

以下方法主要是在页面全局增加几个 meta 标签设置默认的 referrer 值,以达到在请求原始图片数据的时候不提供网站地址来源,规避原始网站防盗链设计,但是这对部分依靠此原理来辅助统计的第三方推广链接是很不利的,甚至会被判定无效,导致无法获得佣金报酬。

折中的做法是把采集到的微信公众号文章单独归为一个分类,只有当网站显示是这个分类下的文章时才会额外添加 meta 标签。

// 其它自定义代码加到此行下面

add_action('wp_head', 'guihet_referrer');// 前端添加 referrer 标签
add_action('admin_head', 'guihet_referrer');// 后台添加 referrer 标签
function guihet_referrer(){
    $catsy = get_the_category(); 
    $myCat = $catsy[0]->cat_ID;
    if($myCat===22) //分类 ID 为 22 的..
    {
        echo'<meta name="referrer" content="no-referrer" />';
        echo'<meta name="referrer" content="never"/>';
        echo'<meta name="referrer" content="same-origin"/>';    
    }
}

代码添加到 WP 主题模板下的 functions.php 文件末尾,其中分类 ID 根据实际更改。

发表评论

邮箱地址不会被公开。 必填项已用*标注

  1. 站元素主机 说道:
    学习了 赞一个
  2. 言情库 说道:
    不知道说什么好,还是祝疫情早点结束吧!