WORDPRESS屏蔽搜索引擎抓取指定文章和外部链接

WORDPRESS屏蔽搜索引擎抓取指定文章和外部链接

WordPress建站,会自带很多功能页面。这些页面被抓取不仅无用,还可能有安全风险。有一些页面不想被蜘蛛抓取,该怎么办呢?

本文章里,当勾选指定了单篇文章屏蔽搜索引擎抓取时,增加了可以不允许百度主动推送文章。

首先,在主题functions.php最后一行加入以下代码:

/*百度主动推送*/
function Baidu_Submit($post_ID) {
    $WEB_TOKEN='*********';  //这里换成你的网站的百度主动推送的token值
    $WEB_DOMAIN=get_option('home');
    //已成功推送的文章不再推送
    if(get_post_meta($post_ID,'Baidusubmit',true) == 1) return;
    $url = get_permalink($post_ID);
    $api = 'http://data.zz.baidu.com/urls?site='.$WEB_DOMAIN.'&token='.$WEB_TOKEN;
    $ch  = curl_init();
    $options =  array(
        CURLOPT_URL => $api,
        CURLOPT_POST => true,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_POSTFIELDS => $url,
        CURLOPT_HTTPHEADER => array('Content-Type: text/plain'),
    );
    curl_setopt_array($ch, $options);
    $result = json_decode(curl_exec($ch),true);
    //如果推送成功则在文章新增自定义栏目Baidusubmit,值为1
    if (array_key_exists('success',$result)) {
        add_post_meta($post_ID, 'Baidusubmit', 1, true);
    }
}
if(empty($_POST['wpyou-allow-se'])){
    add_action('publish_post', 'Baidu_Submit', 0);
}
/*/百度主动推送*/

最后再加入:

/*给外部链接加上参数跳转,避免权重流失*/
    add_filter('the_content','the_content_nofollow',999);
    function the_content_nofollow($content){
        preg_match_all('/<a(.*?)href="(.*?)"(.*?)>/',$content,$matches);
        if($matches){
            foreach($matches[2] as $val){
                if(strpos($val,'://')!==false && strpos($val,home_url())===false && !preg_match('/\.(jpg|jpeg|png|ico|bmp|gif|tiff|svg|mp4|mp3|js|css)/i',$val)){
                    $content=str_replace('href="'.$val.'"', 'href="'.home_url().'/go.php?url='.base64_encode($val).'" ',str_replace('rel="noopener"','rel="noopener nofollow noreferrer"',$content));
                }
            }
        }
        return $content;
    }
/*/给外部链接加上参数跳转,避免权重流失*/

发表评论

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

滚动至顶部