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;
}
/*/给外部链接加上参数跳转,避免权重流失*/
本文由悦略设计发表,其版权均为悦略设计所有,文章内容系作者个人观点,不代表悦略设计对观点赞同或支持。如需转载,请注明文章来源。如有侵权,请联系本站立即删除!