Posts Tagged ‘wordpress api

Page 1 of 11

上回发了一篇文章介绍xmlrpc协议,今天就把他的实际应用放上来供大家学习。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?php
static function get_blog(){
$url = "club.redhome.cc";
//包含xmlrpc库
include(’xmlrpc.php’);
//指定目标编码
$GLOBALS[’xmlrpc_internalencoding’] = ‘UTF-8′;
$client = new xmlrpc_client("/xmlrpc.php",$url,80);
//定义xmlrpc接口,具体可用的接口可以参考WordPress根目录下的xmlrpc.php文件
$msg = new xmlrpcmsg(’metaWeblog.getRecentPosts’,
array(
php_xmlrpc_encode("1"), //blog id
php_xmlrpc_encode("admin"), //username
php_xmlrpc_encode("password"), //password
php_xmlrpc_encode("4") //读取新闻的条数
)
);
$res = $client->send($msg);
$val = $res->value()->getval();
$news = array();
//取得文章的title和url
foreach($val as $val){
$tmp = array(
‘link’ => $val[’link’]->getval(),
‘title’ => $val[’title’]->getval(),
);
array_push($news,$tmp);
}
return $news;
}
?>

WordPress提供了XML-RPC接口使得第三方的博客写作软件(如windows live writer等)可以与之通信来发布和修改博客。我们也可以在网站上使用这个接口做一些工作,例如:在网站首页显示最新的博客、在博客之外的页面上发表博客文章、把博客与其他内容管理系统结合,等等。
一、开启XML-RPC支持
XML-RPC协议默认是未开启的,需要到WordPress管理后台的“设置–>撰写”里的“远程发布”给XML-RPC打上勾。其说明文字为:启用 WordPress,Movable Type,MetaWeblog和Blogger 的 XML-RPC发布协议。
二、获取接口的信息
我们查看博客首页的源代码,在head中可以发现类似这样的link项

1
<link title="RSD" href="http://blog.bluesky.cn/xmlrpc.php?rsd" type="application/rsd+xml" rel="EditURI" />

其中的”RSD”是“Really Simple Discovery”的意思,也就是说这是一个“简单的发现博客编辑接口”的地址。我们用浏览器直接访问这个地址就可以在其返回XML中获知博客的ID(blogID,一般这个的值是“1”)以及它所支持的接口类型和接口地址。
三、API接口选择
WordPress提供了对Blogger API、metaWeblog API、Movable Type API以及其自身的WordPress API的支持。其中WordPress API最为丰富,提供了包括操作评论文章在内的各种各样的支持。Blogger API功能较少,基本上淘汰不用了;而metaWeblog API提供了常用的接口且参数比较简洁,用得较多一些。
四、例子代码


Page 1 of 11

About this blog

Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Quisque sed felis. Aliquam sit amet felis. Mauris semper, velit semper laoreet dictum, quam diam dictum urna, nec placerat elit nisl in quam. Etiam augue pede, molestie eget, rhoncus at, convallis ut, eros. Aliquam pharetra.

Photostream