您的位置:首页 > 其它

WordPress中如何实现Ping功能

2011-02-14 13:29 411 查看

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐