百度站长自动提交中有一种推送方式为主动推送,不过实现的方法有几种,给出的代码也不完全,需要用户补充,这里分享的是百度主动推送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插件的,至于插件的设置嘛。还是很小白化的,这里就不叙述了,在这,感谢百度,感谢团队维维的贡献!