phpcms实现百度自动提交

百度站长平台开放url推送接口,可以使用调用接口的形式主动及时推送url给百度在PHPCMS的libs functions global func php文件中添加一个百度

百度站长平台开放url推送接口,可以使用调用接口的形式主动及时推送url给百度

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


/**
 * 百度站长平台链接推送
 * @param $bdurls url数组
 * @赢智库’醒木
 */
function push_baidu($bdurls){
    $api = 'http://data.zz.baidu.com/urls?site=www.yingzhiku.cn&token=百度站长平台申请token';
    $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;
}

在需要推送的动作,如发布一篇文章提交时,主动推送

修改phpcms/model/content_model.class.php文件,大概在226行左右找下面代码

//生成静态
if(!$isimport && $data['status']==99) {

在其后面添加

//推送百度平台 S
$bdurls[] = 'http://'.SITE_URL.$urls[1];
$push_result = push_baidu($bdurls);
$msg = '';
if ($push_result['success'] < 1) { $msg = '百度联盟推送链接失败!'; } //推送百度平台 E //在添加和修改内容处定义了 INDEX_HTML if(defined('INDEX_HTML')) $html->index();
if(defined('RELATION_HTML')) $html->create_relation_html($catid);
 

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

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放进数组里,再调用这个方法传参即可。

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

PHPCMS站点管理员没有删除栏目的权限 SEO干货丨4大页面优化设置加快网站收录速度
Tags:  
联系我们

Contact us

青岛

电话:133 9639 4503

地址:青岛市市南区三度空间2309

诸城

电话:133 0646 1744

地址:诸城市繁荣东路74号楼12F

×