WordPress中如何实现Ping功能

WordPress中如何实现Ping功能

使用WordPress的朋友都知道通过配置WordPress的Ping服务列表,就可以在你发布新文章时,立即自动通知搜索引擎蜘蛛来抓取,第一时间更新订阅的频道(Feed)。

所以添加Google的Ping地址到WordPress的Ping服务列表,然后通过使用WordPress博客发表的文章能够很快出现在Google的数据库中。

在这里分析一下WordPress的Ping功能到底是如何实现的。

在分析Ping功能是首先需要了解以下几点:
1.WordPress的Ping服务列表存放在数据库中的位置是:
复制内容到剪贴板
代码:
//wp_options 表
SELECT * FROM wp_options WHERE option_name='ping_sites'
2.WordPress中提供了Trackback和Ping两种功能。

因为接触WP时间不长,对于其中的很多功能还不太熟悉,所以暂时只找到在wp_includes/comment.php文件中有关于Ping服务的代码:
大家可以在此文件中摸查如下几个函数:

function do_all_pings()
function pingback($content, $post_ID)
function weblog_ping($server = '', $path = '')

我觉得最重要的函数是:weblog_ping
具体代码如下:
复制内容到剪贴板
代码:
function weblog_ping($server = '', $path = '') {
    global $wp_version;
    include_once(ABSPATH . WPINC . '/class-IXR.php');

    // using a timeout of 3 seconds should be enough to cover slow servers
    $client = new IXR_Client($server, ((!strlen(trim($path)) || ('/' == $path)) ? false : $path));
    $client->timeout = 3;
    $client->useragent .= ' -- WordPress/'.$wp_version;

    // when set to true, this outputs debug messages by itself
    $client->debug = false;
    $home = trailingslashit( get_option('home') );
    if ( !$client->query('weblogUpdates.extendedPing', get_option('blogname'), $home, get_bloginfo('rss2_url') ) ) // then try a normal ping
        $client->query('weblogUpdates.ping', get_option('blogname'), $home);
}
其中的weblogUpdates.extendedPing与Google“博客搜索”帮助中描述的情况一致:
引用:
关于 Google“博客搜索”Ping 服务应用编程接口(API)
XML-RPC客户的请求应包含如下元素:
RPC端点: http://blogsearch.google.com/ping/RPC2
调用方法名:   weblogUpdates.extendedPing
参数: (应按照如下所列的相同顺序传送)
  • 站点名
  • 站点URL
  • 需要检查更新的页面URL
  • 相应的RSS、RDF或Atom种子的URL
  • 可选 页面内容的分类名称(或标签)。您可以指定多个值,之间用'|'字符进行分隔。

XML-RPC响应中将返回含有两个元素的<struct> :
  • flerror (Boolean):当有错误发生时设为true/1
  • message (string) :"Thanks for the ping." (如果成功) 或者一个错误信息(如果不成功)。

常用的 XML-RPC Ping Services

http://rpc.pingomatic.com

http://rpc.twingly.com
http://api.feedster.com/ping
http://api.moreover.com/RPC2
http://api.moreover.com/ping
http://api.my.yahoo.com/RPC2
http://api.my.yahoo.com/rss/ping
http://www.blogdigger.com/RPC2
http://www.blogshares.com/rpc.php
http://www.blogsnow.com/ping
http://www.blogstreet.com/xrbin/xmlrpc.cgi
http://bulkfeeds.net/rpc
http://www.newsisfree.com/xmlrpctest.php
http://ping.blo.gs/
http://ping.feedburner.com
http://ping.syndic8.com/xmlrpc.php
http://ping.weblogalot.com/rpc.php
http://rpc.blogrolling.com/pinger/
http://rpc.technorati.com/rpc/ping
http://rpc.weblogs.com/RPC2
http://www.feedsubmitter.com
http://blo.gs/ping.php
http://www.pingerati.net
http://www.pingmyblog.com
http://geourl.org/ping
http://ipings.com
http://www.weblogalot.com/ping
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值