wordpress ATOM协议的使用

2009年6月30日 | 分类: Web相关技术 | 标签: ,
看鸣人怎么征服九尾 | 第409话[天锁斩月] | 火影忍者、死神、海贼王,视频进展太慢,那就来看漫画呀!

最近想用wordpress最为一个数据展示系统,需要将数据导入到wordpress系统中,网上找半天,未发现有人对此做过应用及介绍,只好自己来研究了。
通过wordpress.org 了解是wp-app.php 文件提供了atom功能,打开源码,就可以找到其支持的各种方法,POST、GET、DELETE等,如下:

$this->selectors = array(
‘@/service$@’ =>
array(‘GET’ => ‘get_service’),
‘@/categories$@’ =>
array(‘GET’ => ‘get_categories_xml’),
‘@/post/(\d+)$@’ =>
array(‘GET’ => ‘get_post’,
‘PUT’ => ‘put_post’,
‘DELETE’ => ‘delete_post’),
‘@/posts/?(\d+)?$@’ =>
array(‘GET’ => ‘get_posts’,
‘POST’ => ‘create_post’),
‘@/attachments/?(\d+)?$@’ =>
array(‘GET’ => ‘get_attachment’,
‘POST’ => ‘create_attachment’),
‘@/attachment/file/(\d+)$@’ =>
array(‘GET’ => ‘get_file’,
‘PUT’ => ‘put_file’,
‘DELETE’ => ‘delete_file’),
‘@/attachment/(\d+)$@’ =>
array(‘GET’ => ‘get_attachment’,
‘PUT’ => ‘put_attachment’,
‘DELETE’ => ‘delete_attachment’),
);

然后就是用curl 进行一个一个测试,目前我不知道windows是否有相似的工具,我是在ubuntu下进行的测试,经过千辛万苦,终于将基本的操作方法搞明白了。
重要的两个方法
1.DELETE 删除一篇文章
curl -v -X DELETE -u admin:333 http://liangpeng.net/wp-app.php/post/3
其中的-u指定用户名密码
2.POST 创建一篇新文章
curl -v -X POST –data @t.xml -H “Content-Type:application/atom+xml” -u admin:333 http://liangpeng.net/wp-app.php/posts/
其中-H是设置http请求的头信息,在服务器端会进行Content-type类型验证,所以必须增加此信息
其中@t.xml是一个文章内容的xml文件,可以通过 http://liangpeng.net/wp-app.php/post/2 获取到一个真实数据,修改下就能用了,我是直接把多余的信息全部删除,只剩下标题和内容字段,测试有效。

目前两个操作基本满足我的需求,关于Get,直接使用 http://liangpeng.net/wp-app.php/post/? 既可以获得,很是简单,当让也需要用户名密码。

注意:

  1. wp-app.php 只接受/post/(/d)+格式的url重写,如果你的服务器不支持,请设置,目前apache下貌似使用wordpress自己生成的.htaccess即可,nginx我还没搞定
  2. 之前一遍英文文章(http://torrez.us/archives/2006/08/21/486/)介绍的使用cookie登录,貌似现在已经不行了,wp-app.php使用的是$_SERVER获取的User变量,curl 可以通过参数 -u 直接传递。

1 trackbacks