百度站长平台API主动推送功能,可以实现系统直接主动推送网站新发布文章等内容到百度搜索引擎库,相比人工手动提交,API主动推送功能可以更省时省力,提高网站收录速度!
插件挂载函数,发布文章与更新文章返回文章URL汇总,直到程序最后一次批量推送(对于是采集批量发布更新是非常友好的),而不是发布或者更新一个文章就推送一次。
Add_Filter_Plugin('Filter_Plugin_PostArticle_Succeed', 'xinZblog_zzbaidu');
function xinZblog_zzbaidu_url(){
global $zbp;
$url=xinZblog_zzbaidu('');
if(!empty($url)){
$day=date('Ymd');
if ($zbp->Config('xinZblog')->zzbaidu) {
$d = json_decode($zbp->Config('xinZblog')->zzbaidu, true);
if(!empty($d['time'])&&date('Ymd',$d['time'])==$day){
if(!empty($d['error'])){
$day=0;
}
}
}
if($day){
$options = array(
CURLOPT_URL => xinZblog('zzbaidu'),
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POSTFIELDS => implode("\n", array_unique($url)),
CURLOPT_HTTPHEADER => array('Content-Type: text/plain'),
CURLOPT_CONNECTTIMEOUT => 10,
CURLOPT_TIMEOUT => 10
);
$ch = curl_init();
curl_setopt_array($ch, $options);
$r = curl_exec($ch);
curl_close($ch);
$r=json_decode($r,true);
if(empty($r['error'])){
$r['data']=$r;
}
$r['time']=time();
$r['urls']=$url;
$zbp->Config('xinZblog')->zzbaidu = json_encode($r);
$zbp->SaveConfig('xinZblog');
}
}
}
function xinZblog_zzbaidu($article){
static $url=array();
if (xinZblog('zzbaidu')&&!empty($article)) {
if(!empty($article->ID)){
if(empty($url)){
register_shutdown_function('xinZblog_zzbaidu_url');
}
$url[]=$article->Url;
}
}
return $url;
}
xinZblog('zzbaidu') 是百度API推送的接口调用地址
$zbp->Config('xinZblog')->zzbaidu,保存最后推送数据记录,如果当天超额后就会暂停当天的推送。
采集发布文章批量推送数据记录,如图 :
THE END
喜欢就支持一下吧