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; } /*/给外部链接加上参数跳转,避免权重流失*/