在网上一直流传传着一个加快 WordPress 收录的教程,那就是在 WordPress 后台的更新通知服务里加上百度 ping XML_RPC 地址来通知百度网站更新了快来收录,详情见百度站长平台:(百度 ping) 当时小 V 也觉得蛮不错的就把百度 ping 和谷歌 ping 的地址一起加到了 WordPress 更新通知服务列表里,如下图:
由于最近小 V 放寒假了所以时间多没事也喜欢分析下网站日志,最近在分析日志的时候小 V 发现添加 ping 通知服务后,每次更新来的都是谷歌的蜘蛛,百度蜘蛛根
本不来。按理说百度蜘蛛就算再大牌也不能一次都不来啊,毕竟是百度也是支持 ping 协议的。
小 V 仔细研究了几次才发现原来百度还是耍大牌了,各大厂商,当然也包括
WordPress,默认的 ping 服务都是是 3 个参数,即网站名称,首页地址,feed 地址;而百度这货的 ping 呢,则是 4 个参数,即网站名称,首页地址,新网页的地址,feed 地址。所以使用 WordPress 默认的 ping 通知服务是通知不了百度的。。。
既然 WordPress 的 ping 通知不兼容百度的 ping 服务那么我们只有苦逼的手动去提交地址么?其实小 V 已经找到解决方法了,将以下代码加到主题的 functions.php 文件即可解决此问题,代码如下:
function
v7v3_baiping(
$post_id
) {
$baiduXML
=
'weblogUpdates.extendedPing'
. get_option(
'blogname'
) .
' '
. home_url() .
' '
. get_permalink(
$post_id
) .
' '
. get_feed_link() .
' '
;
$wp_http_obj
=
new
WP_Http();
$return
=
$wp_http_obj
->post(
'http://ping.baidu.com/ping/RPC2'
,
array
(
'body'
=>
$baiduXML
,
'headers'
=>
array
(
'Content-Type'
=>
'text/xml'
)));
if
(isset(
$return
[
'body'
])){
if
(
strstr
(
$return
[
'body'
],
'0'
)){
$noff_log
=
'succeeded!'
;
}
else
{
$noff_log
=
'failed!'
;
}
}
else
{
$noff_log
=
'failed!'
;
}
}
add_action(
'publish_post'
,
'v7v3_baiping'
);
此方法小 V 已经测试几天了,发布文章后的确能通知到百度爬虫来抓取网页,不相信?发布文章后过几分钟再自己看看网站日志~