推送url到百度php,PHPCMS自动推送URL到百度站长平台

最近把手上的一个项目网站,全面改为phpcms,由于百度已经全面取消sitemap抓取,百度站长平台开放url推送接口,可以使用调用接口的形式主动及时推送url给百度,下面演示在PHPCMS系统中如何使用接口自动推送URL到百度站长平台。

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

function push_baidu($bdurls){

$api =

'http://data.zz.baidu.com/urls?site=你的域名&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文件

222行

//生成静态

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方法里,调用上面定义的方法:

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值