百度最近取消了JS自動(dòng)推送URL到站長(zhǎng)平臺(tái)的功能,用戶只能使用主動(dòng)推送,不過主動(dòng)推送大多需要手動(dòng)來實(shí)現(xiàn),或是使用API接口對(duì)小白來說不太友好,這里小編整理了關(guān)于phpcms添加百度主動(dòng)推送功能(發(fā)布時(shí)自動(dòng)推送URL到百度站長(zhǎng)平臺(tái))教程,有需要的朋友可以學(xué)習(xí)一下!
修改方法如下:
1、找到PHPCMS的libs/functions/global.func.php文件中添加一個(gè)百度推送函數(shù):
$api = 'http://data.zz.baidu.com/urls?site=你的域名&token=自己去百度站長(zhǎng)平臺(tái)獲取';
$ch = curl_init();
$options = array(
CURLOPT_URL => $api,
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POSTFIELDS => implode("\n", $bdurls),
CURLOPT_HTTPHEADER => array('Content-Type: text/plain'),
);
curl_setopt_array($ch, $options);
$result = curl_exec($ch);
$result = json_decode($result, 1);
return $result;
}
2、然后我們要修改一下phpcms/model/content_model.class.php文件,讓我們發(fā)布文章時(shí)實(shí)現(xiàn)主動(dòng)推送。
找到大約222行
//生成靜態(tài)
if(!$isimport && $data['status']==99) {
添加:
$bdurls[] = 'http://'.SITE_URL.$urls[1];
$push_result = push_baidu($bdurls);
$msg = '';
if ($push_result['success'] < 1) { $msg = '百度聯(lián)盟推送鏈接失?。?#39;; } //推送百度平臺(tái)
//在添加和修改內(nèi)容處定義了 INDEX_HTML if(defined('INDEX_HTML')) $html->index();
if(defined('RELATION_HTML')) $html->create_relation_html($catid);
}
3、也可以在批量生成靜態(tài)頁的地方調(diào)用這個(gè)接口,去modules/content/crete_html.php文件的batch_show方法里,調(diào)用上面定義的方法:
if($r['islink']) continue;
$this->db->table_name = $tablename;
$r2 = $this->db->get_one(array('id'=>$r['id']));
if($r2) $r = array_merge($r,$r2);
//判斷是否為升級(jí)或轉(zhuǎn)換過來的數(shù)據(jù)
$urls = $this->url->show($r['id'], '', $r['catid'],$r['inputtime']);
} else {
$urls[1] = $r['url'];
}
$bdurls[] = $r['url'];
$this->html->show($urls[1],$r,0,'edit',$r['upgrade']);
}
//推送百度平臺(tái)
$msg = '';
if($push_result['success'] < 1){ $msg = '百度聯(lián)盟推送鏈接失??!'; }
最后幾行是修改后新加的代碼,首先要把更新哪些靜態(tài)頁的url放進(jìn)數(shù)組里,再調(diào)用這個(gè)方法傳參即可。要在其他動(dòng)作如添加或者編輯文章的時(shí)候推送,原理是一樣的,找到對(duì)應(yīng)的地方調(diào)用推送方法就行了。
以上就是phpcms添加百度主動(dòng)推送功能的詳細(xì)教程了,希望大家能喜歡哦。