要實現織夢發布新文章后提交原創保護到百度的前提條件是站點要先擁有百度的原創保護提交權限。
通過百度原創保護權限會發現,其實百度的原創提交只和鏈接提交多了一個類型:type=original
比如你的鏈接提交為:http://data.zz.baidu.com/urls?site=網址&token=token值
那么原創提交鏈接為:http://data.zz.baidu.com/urls?site=網址&token=token值&type=original
這樣的話就比較容易了,在這里我是通過給織夢加自定義文檔屬性實現的,當勾選文檔屬性為原創時候,就提交原創鏈接,否則提交普通鏈接,做一個判斷即可。
先增加一個自定義文檔屬性,需要執行一段sql語句(在這里注意:建議先做好數據備份,如果您的表前綴改過,下面的sql要改下表前綴),執行完成后會看到如下圖的屬性。
INSERT INTO `dede_arcatt` VALUES('9','y','原創');alter table `dede_archives` modify `flag` set('c','h','p','f','s','j','a','b','y') default NULL; |
發布文檔時候勾選原創屬性即可:
然后修改織夢后臺文件 article_add.php 和 article_edit.php 這里是以文檔模型為例子,如果需要修改其他模型,請自行改下,主要是加入以下推送文件,在推送時候做判斷。
if($artUrl=='') { $artUrl = $cfg_phpurl."/view.php?aid=$id"; }else{$aurls[]='http://'.$cfg_baiduhost.'/'.$artUrl;if(strpos($flag,'y') !== false){$api = 'http://data.zz.baidu.com/urls?site='.$cfg_baiduhost.'&token='.$cfg_badutoken.'&type=original';}else{$api = 'http://data.zz.baidu.com/urls?site='.$cfg_baiduhost.'&token='.$cfg_badutoken;}$ch = curl_init();$options = array( CURLOPT_URL => $api, CURLOPT_POST => true, CURLOPT_RETURNTRANSFER => true, CURLOPT_POSTFIELDS => implode("/n", $aurls), CURLOPT_HTTPHEADER => array('Content-Type: text/plain'),);curl_setopt_array($ch, $options);$result = curl_exec($ch);} |
這樣的話前臺的調用也方便多了,調用flag屬性為y的即可。
出現如下圖的提示,表示提交成功:
成功返回示例:
{ "remain": 4999999, "success": 1, "remain_original": 9, "success_original": 1} |
失敗返回示例:
{ "error":401, "message":"token is not valid"} |
新聞熱點
疑難解答