WordPress发布文章主动推送到百度,加快收录保护原创

如何WordPress发布文章主动推送到百度?

今天介绍wordpress主题如何发布文章主动推送到百度的方法,把下面代码放入function.php函数中即可,下面有三种方式,任选一种即可。

①、WrodPress 通用方式【推荐使用】

  1. /**
  2. *?WordPress发布文章主动推送到百度,加快收录保护原创【WordPress通用方式】
  3. */
  4. if(!function_exists('Baidu_Submit')){
  5. ????function?Baidu_Submit($post_ID)?{
  6. ????????$WEB_TOKEN??=?'xxxxxxxxxxx';??//这里请换成你的网站的百度主动推送的token值
  7. ????????$WEB_DOMAIN?=?get_option('home');
  8. ????????//已成功推送的文章不再推送
  9. ????????if(get_post_meta($post_ID,'Baidusubmit',true)?==?1)?return;
  10. ????????$url?=?get_permalink($post_ID);
  11. ????????$api?=?'http://data.zz.baidu.com/urls?site='.$WEB_DOMAIN.'&token='.$WEB_TOKEN;
  12. ????????$request?=?new?WP_Http;
  13. ????????$result?=?$request->request(?$api?,?array(?'method'?=>?'POST',?'body'?=>?$url?,?'headers'?=>?'Content-Type:?text/plain')?);
  14. ????????$result?=?json_decode($result['body'],true);
  15. ????????//如果推送成功则在文章新增自定义栏目Baidusubmit,值为1
  16. ????????if?(array_key_exists('success',$result))?{
  17. ????????????add_post_meta($post_ID,?'Baidusubmit',?1,?true);
  18. ????????}
  19. ????}
  20. ????add_action('publish_post',?'Baidu_Submit',?0);
  21. }

②、curl_init 方式

  1. /**
  2. *?WordPress发布文章主动推送到百度,加快收录保护原创【curl_init方式】
  3. */
  4. if(!function_exists('Baidu_Submit')?&&?function_exists('curl_init'))?{
  5. ????function?Baidu_Submit($post_ID)?{
  6. ????????$WEB_TOKEN='xxxxxxxxx';??//这里换成你的网站的百度主动推送的token值
  7. ????????$WEB_DOMAIN=get_option('home');
  8. ????????//已成功推送的文章不再推送
  9. ????????if(get_post_meta($post_ID,'Baidusubmit',true)?==?1)?return;
  10. ????????$url?=?get_permalink($post_ID);
  11. ????????$api?=?'http://data.zz.baidu.com/urls?site='.$WEB_DOMAIN.'&token='.$WEB_TOKEN;
  12. ????????$ch??=?curl_init();
  13. ????????$options?=??array(
  14. ????????????CURLOPT_URL?=>?$api,
  15. ????????????CURLOPT_POST?=>?true,
  16. ????????????CURLOPT_RETURNTRANSFER?=>?true,
  17. ????????????CURLOPT_POSTFIELDS?=>?$url,
  18. ????????????CURLOPT_HTTPHEADER?=>?array('Content-Type:?text/plain'),
  19. ????????);
  20. ????????curl_setopt_array($ch,?$options);
  21. ????????$result?=?json_decode(curl_exec($ch),true);
  22. ????????//如果推送成功则在文章新增自定义栏目Baidusubmit,值为1
  23. ????????if?(array_key_exists('success',$result))?{
  24. ????????????add_post_meta($post_ID,?'Baidusubmit',?1,?true);
  25. ????????}
  26. ????}
  27. ????add_action('publish_post',?'Baidu_Submit',?0);
  28. }

③、file_get_contents 方式

鉴于有个别站长反馈代码添加后,发布或更新文章,自定义栏目中都不会出现我们期望的baidusubmit,我要他们检查 token 和域名,也反馈是正确的,直到我亲自给一个站长 Debug 时才发现是他主机的 curl_exec()函数被禁用了!既然这个函数都不能用了,那代码也肯定无法正常推送了!

于是,我额外写了一个普遍支持的 file_get_contents 方式,代码如下:

  1. /**
  2. *?WordPress发布文章主动推送到百度,加快收录保护原创【file_get_contents方式】
  3. */
  4. if(!function_exists('Baidu_Submit'))?{
  5. ????function?Baidu_Submit($post_ID)?{
  6. ????????$WEB_TOKEN='xxxxxxxxx';??//这里换成你的网站的百度主动推送的token值
  7. ????????$WEB_DOMAIN=get_option('home');
  8. ????????//已成功推送的文章不再推送
  9. ????????if(get_post_meta($post_ID,'Baidusubmit',true)?==?1)?return;
  10. ????????$url?=?get_permalink($post_ID);
  11. ????????$api?=?'http://data.zz.baidu.com/urls?site='.$WEB_DOMAIN.'&token='.$WEB_TOKEN;
  12. ????????$data?=?array?(
  13. ????????????'http'?=>?array?(
  14. ????????????????'method'?=>?'POST',
  15. ????????????????'header'=>?"Content-Type:?text/plain",
  16. ????????????????"Content-Length:?".strlen($url)."rn",
  17. ????????????????'content'?=>?$url
  18. ????????????)
  19. ????????);
  20. ????????$data?=?stream_context_create($data);
  21. ????????$result?=?file_get_contents($api,?false,?$data);
  22. ????????$result?=?json_decode($result,true);
  23. ????????//如果推送成功则在文章新增自定义栏目Baidusubmit,值为1
  24. ????????if?(array_key_exists('success',$result))?{
  25. ????????????add_post_meta($post_ID,?'Baidusubmit',?1,?true);
  26. ????????}
  27. ????}
  28. ????add_action('publish_post',?'Baidu_Submit',?0);
  29. }

以上三种代码放置在主题文件里的functions.php文件里,现在发布新文章,文章地址将会被主动推送到百度。被成功推送的文章,将自动出现如下自定义栏目,从而避免代码重复推送的尴尬,如果你需要更新文章再次推送数据,那么删除或修改这个自定义栏目即可再次被推送。

WordPress发布文章主动推送到百度,加快收录保护原创

代码部署

从上面选好合适的代码后(推荐①),先打开百度官方页面:http://zhanzhang.baidu.com/linksubmit/index,获取你网站的专属的 token 值,替换到代码中的 "xxxxxxxxx"(Ps:域名已更新为动态变量,无需另外更改)。

  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin
avatar

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: