PHPCMS X

PHPCMS文章自动推送URL到百度站长平台:
PHPCMS很多时候用来做企业网站建设,企业网站一般都是展示型网站,对SEO都比较重视,今天我们来介绍一下如何让PHPCMS自动推送文章到百度站长平台,更简易的实现SEO需求

PHPCMS文章自动推送URL到百度站长平台
PHPCMS很多时候用来做企业网站建设,企业网站一般都是展示型网站,对SEO都比较重视,今天我们来介绍一下如何让PHPCMS自动推送文章到百度站长平台,更简易的实现SEO需求
2020-09-01 07:23:15  来源:PHPCMSX

百度站长平台开放url推送接口,可以使用调用接口的形式主动及时推送url给百度,下面演示在PHPCMS系统中如何使用接口自动推送URL到百度站长平台.


在PHPCMS的libs/functions/global.func.php文件中添加一个百度推送函数:

/** 
 * 百度站长平台链接推送 
 * @param $bdurls url数组 
 * @date 2015.8.8 15:19 
 */ 
function push_baidu($bdurls){ 
    $api = 'http://data.zz.baidu.com/urls?site=www.phpcmsx.com&token=自己去百度站长平台获取'; 
    $ch = curl_init(); 
    $options =  array( 
        CURLOPT_URL => $api, 
        CURLOPT_POST => true, 
        CURLOPT_RETURNTRANSFER => true, 
        CURLOPT_POSTFIELDS => implode(" ", $bdurls), 
        CURLOPT_HTTPHEADER => array('Content-Type: text/plain'), 
    ); 
    curl_setopt_array($ch, $options); 
    $result = curl_exec($ch); 
    $result = json_decode($result, 1); 
    return $result; 
}


在需要推送的动作,如发布一篇文章,修改一篇文章,或者生成一篇静态文章页的时候可以调用这个方法,比如我想在批量生成静态页的地方调用这个接口,去modules/content/crete_html.php文件的batch_show方法里,调用上面定义的方法:

foreach($rs as $r) { 
 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); 
 //判断是否为升级或转换过来的数据 
 if(!$r['upgrade']) { 
  $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']); 
} 
//推送百度平台 
$push_result = push_baidu($bdurls); 
$msg = ''; 
if($push_result['success'] < 1){ 
 $msg = '百度联盟推送链接失败!'; 
}


最后几行是修改后新加的代码,首先要把更新哪些静态页的url放进数组里,再调用这个方法传参即可.

要在其他动作如添加或者编辑文章的时候推送,原理是一样的,找到对应的地方调用推送方法就行了


最后需要注意的是此种方法是使用百度站长平台的api推送功能,使用的是POST方法推送,如果归送不成功,各位可查看百度站长平台推送返回码的说明。