百度站长自动提交中有一种推送方式为主动推送,不过实现的方法有几种,给出的代码也不完全,需要用户补充,这里分享的是百度主动推送WordPress版的通用代码,完全是实时推送。
PS:一个百度站长账号有多个站点,这几个站点的token值都是一样的。
WordPress百度主动推送代码1
这个方法不需要在意官方说的是否存在curl_init() 函数,适合小白,直接放上去就能够实现主动推送的功能。将以下代码加入到你的function文件中即可:
/**
* 主动实时推送到百度代码 WordPress如何添加百度实时推送功能教程
* 文章地址:https://www.77shw.com/jc/13426.html*/if(!function_exists('Baidu_Submit')){
function Baidu_Submit($post_ID) {
$WEB_TOKEN = 'xxxxxxxxxxx'; //这里请换成你的网站的百度主动推送的token值
$WEB_DOMAIN = get_option('home');
//已成功推送的文章不再推送
if(get_post_meta($post_ID,'Baidusubmit',true) == 1) return;
$url = get_permalink($post_ID);
$api = 'http://data.zz.baidu.com/urls?site='.$WEB_DOMAIN.'&token='.$WEB_TOKEN;
$request = new WP_Http;
$result = $request->request( $api , array( 'method' => 'POST', 'body' => $url , 'headers' => 'Content-Type: text/plain') );
$result = json_decode($result['body'],true);
//如果推送成功则在文章新增自定义栏目Baidusubmit,值为1
if (array_key_exists('success',$result)) {
add_post_meta($post_ID, 'Baidusubmit', 1, true);
}
}
add_action('publish_post', 'Baidu_Submit', 0);
} 添加之后在随便发一篇文章,再去百度后台看看是否是有成功自动推送一篇文章的记录吧!
WordPress百度主动推送代码2
把以下代码中的token值(xxxxxxxxxxx)改为我们第一步获取的token值(其他的不用修改),然后把这些代码添加到主题目录下的 functions.php 文件最后一个?>之前即可。
/**
* 主动实时推送到百度代码 WordPress如何添加百度实时推送功能教程
* 文章地址:https://www.77shw.com/jc/13426.html
*/if(!function_exists('Baidu_Submit')){
function Baidu_Submit($post_ID) {
$WEB_TOKEN = 'xxxxxxxxxxx'; //这里请换成你的网站的百度主动推送的token值
$WEB_DOMAIN = get_option('home');
//已成功推送的文章不再推送
if(get_post_meta($post_ID,'Baidusubmit',true) == 1) return;
$url = get_permalink($post_ID);
$api = 'http://data.zz.baidu.com/urls?site='.$WEB_DOMAIN.'&token='.$WEB_TOKEN;
$request = new WP_Http;
$result = $request->request( $api , array( 'method' => 'POST', 'body' => $url , 'headers' => 'Content-Type: text/plain') );
$result = json_decode($result['body'],true);
//如果推送成功则在文章新增自定义栏目Baidusubmit,值为1
if (array_key_exists('success',$result)) {
add_post_meta($post_ID, 'Baidusubmit', 1, true);
}
}
add_action('publish_post', 'Baidu_Submit', 0);
} Ps:虽然,主动推送的各种方法都支持一次推送多条数据,从我个人的经验来看,对于老文章没必要再次推送,频繁推送容易导致百度“翻脸”!
WordPress百度主动推送代码3
如果按以上步骤正确操作后,在发布新文章时自定义栏目中不会出现我们期望的baidusubmit,说明实时推送给百度不成功,说明所使用的主机的 curl_exec()函数被禁用了。这个时候,我们只需要把以下代码替换掉第二步的代码即可。
/**
* 主动实时推送到百度代码 WordPress如何添加百度实时推送功能教程
* 文章地址:https://www.77shw.com/jc/13426.html
*/if(!function_exists('Baidu_Submit')) {
function Baidu_Submit($post_ID) {
$WEB_TOKEN='xxxxxxxxx'; //这里换成你的网站的百度主动推送的token值
$WEB_DOMAIN=get_option('home');
//已成功推送的文章不再推送
if(get_post_meta($post_ID,'Baidusubmit',true) == 1) return;
$url = get_permalink($post_ID);
$api = 'http://data.zz.baidu.com/urls?site='.$WEB_DOMAIN.'&token='.$WEB_TOKEN;
$data = array (
'http' => array (
'method' => 'POST',
'header'=> "Content-Type: text/plain",
"Content-Length: ".strlen($url)."rn",
'content' => $url
)
);
$data = stream_context_create($data);
$result = file_get_contents($api, false, $data);
$result = json_decode($result,true);
//如果推送成功则在文章新增自定义栏目Baidusubmit,值为1
if (array_key_exists('success',$result)) {
add_post_meta($post_ID, 'Baidusubmit', 1, true);
}
}
add_action('publish_post', 'Baidu_Submit', 0);
} WordPress百度主动推送代码4
免去安装WP BaiDu Submit插件的实现了WordPress更新文章实时推送到百度新策略!很多人都还是想要的,因为插件的确是越少越好了。将下面的代码添加到你主题的functions.php中去,并替换相关API即可:
/** * 主动实时推送到百度代码 WordPress如何添加百度实时推送功能教程
* 文章地址:https://www.77shw.com/jc/13426.html
*/function mee_post_baidu($post_id,$post){
$PostUrl = get_permalink($post_id);
$urls=array($PostUrl);
$api = ‘你的api调用地址’;
$ch = curl_init();
$options = array(
$api,
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => implode(”
“, $urls),
array(‘Content-Type: text/plain’),
);
$ch, $options);
curl_exec($ch);
add_action(‘publish_post’, ‘mee_post_baidu’); 替换上面的api地址为你自己的即可,这样的方法是最简单明了的,如果不会操作的朋友,还是可以尝试下载安装WP BaiDu Submit插件的,至于插件的设置嘛。还是很小白化的,这里就不叙述了,在这,感谢百度,感谢团队维维的贡献!