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;
    }
/*/给外部链接加上参数跳转,避免权重流失*/
【免责声明】本文由悦略设计发布,仅供学习参考,其版权归原作者所有;所有文章和评论均不代表本站观点;请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗、后果自负,一切与本站无关且不承担任何责任!如需转载,要注明原作者和来源;如发现有害或侵权内容,请点击[留言咨询]或联系我们删除![查看更多]