A-A+

wordpress 集成百度 Sitemap 实时推送接口代码

2015年08月22日 PHP开源系统 暂无评论 阅读 13 views 次

百度的官方很早就出了一款 wordpress 结构化数据实时推送的插件,这款插件的作用就是让 wordpress 的使用者向百度提交结构化的数据 xml,帮助站点让百度蜘蛛进行更好的抓取,但百度官方给出的说法是不保证 wordpress 推送的页面一定收录,其实这跟自己进行 ping 是差不多的,但是其官方又没有推出 sitemap 的实时推送插件,其实 sitemap 的实时推送效果要更好一些,更容易被百度抓取掉,应该说几率更大些吧,但 wordpress 大多数的站点又没有开通百度 sitemap 的权限。

下面夏日博客给出一段代码,当然是要有 sitemap 百度站长平台的 sitemap 权限的,代码如下:

  1. function PushBaiDu($post_id,$post){  
  2. //百度推送接口地址  
  3.     $Push = '百度推送接口地址';  
  4.     $PushUrl = get_permalink($post_id);  
  5.     $PushDate = $post->post_data;  
  6. //构造推送xml数据  
  7.     $PushXml = '<?xml version="1.0" encoding="UTF-8"?>  
  8.     <urlset>  
  9.         <url>  
  10.             <loc><![CDATA['.$PushUrl.']]></loc>  
  11.             <lastmod>'.$PushDate.'</lastmod>  
  12.             <changefreq>daily</changefreq>  
  13.             <priority>0.9</priority>  
  14.         </url>  
  15.     </urlset>';  
  16. //创建http请求对象  
  17.     $wp_http_obj = new WP_Http();  
  18. //发送http post请求提交xml数据  
  19.     return $wp_http_obj->post($Pusharray('body' => $PushXml, 'headers' => array('Content-Type' => 'text/xml')));  
  20. }  
  21. add_action('publish_post', 'PushBaiDu');  

将这段代码放入到主题 functions.php 文件中,记得替换$Push变量的值为你们的百度Sitemap实时推送接口调用地址,如果您的站点没有开通百度Sitemap权限则此代码不可用。

Sitemap实时推送接口获取地址:http://zhanzhang.baidu.com/sitemap/pingadd

因为根据每个 wordpress 版本的不同,可能上述代码会出现 Warning: Missing argument 2 for PushBaiDu(),的错误,可更换如下代码尝试:

  1. function PushBaiDu(){  
  2.     global $post_id;  
  3.     global $post;  
  4. //百度推送接口地址  
  5.     $Push = '百度推送接口地址';  
  6.     $PushUrl = get_permalink($post_id);  
  7.     $PushDate = $post->post_data;  
  8. //构造推送xml数据  
  9.     $PushXml = '<?xml version="1.0" encoding="UTF-8"?>  
  10.     <urlset>  
  11.         <url>  
  12.             <loc><![CDATA['.$PushUrl.']]></loc>  
  13.             <lastmod>'.$PushDate.'</lastmod>  
  14.             <changefreq>daily</changefreq>  
  15.             <priority>0.9</priority>  
  16.         </url>  
  17.     </urlset>';  
  18. //创建http请求对象  
  19.     $wp_http_obj = new WP_Http();  
  20. //发送http post请求提交xml数据  
  21.     return $wp_http_obj->post($Pusharray('body' => $PushXml, 'headers' => array('Content-Type' => 'text/xml')));  
  22. }  
  23. add_action('publish_post', 'PushBaiDu');  
标签:

给我留言