『Wordpress』移动端 API 接口

在网站的搭建上,选择有很多。有轻量级的Octopress,也有稍微重一点的Wordpress。前者没有数据库,写完文章后,直接转为HTML存在服务器上,后者是Mysql+PHP的组合。

之前做了一个客户端,接口写得相当之烂,有人给我发邮件想要看接口文件,我都没好意思发。有时间,便对接口文件进行了重构,所有使用Wordpress的博客,都可以使用这个接口。

本网站的接口文档:

http://tangjr.gitbooks.io/saitjr-api/content/index.html

本文接口开源地址:

https://github.com/saitjr/wordpress-api


环境信息
Wordpress 4.2
ThinkPHP 3.2

正文

本文不会讲解具体的实现过程,仅说明需要注意的地方。

一、框架选择

这次接口选用的框架是ThinkPHP 3.2的核心库,相对来说还是比较轻量级的。

二、使用方法

1. 拷文件

将文件从Github上下载下来,拷到Wordpress所在的路径下。

2. 修改配置文件

找到Application/Api/Conf/config.php文件,里面是关于数据库的配置。可更具需要修改,一般需要修改:数据库地址、数据库名、用户名、密码、端口号、数据库前缀。其余的一般不用修改。

<?php
return array(
//'配置项'=>'配置值'
//* 数据库设置 */
'DB_TYPE' => 'mysql', // 数据库类型
'DB_HOST' => 'localhost', // 服务器地址
'DB_NAME' => 'saitjr_wp', // 数据库名
'DB_USER' => 'root', // 用户名
'DB_PWD' => '12345', // 密码
'DB_PORT' => '3306', // 端口
'DB_PREFIX' => 'wp_', // 数据库表前缀
'DB_PARAMS' => array(), // 数据库连接参数
'DB_DEBUG' => TRUE, // 数据库调试模式 开启后可以记录SQL日志
'DB_FIELDS_CACHE' => true, // 启用字段缓存
'DB_CHARSET' => 'utf8', // 数据库编码默认采用utf8
'DB_DEPLOY_TYPE' => 0, // 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器)
'DB_RW_SEPARATE' => false, // 数据库读写是否分离 主从式有效
'DB_MASTER_NUM' => 1, // 读写分离后 主服务器数量
'DB_SLAVE_NO' => '', // 指定从服务器序号
);

3. 接口调用

关于每个接口如何调用可以看本站的接口文档:

http://tangjr.gitbooks.io/saitjr-api/content/index.html

三、接口实现

这次一共实现了五个接口,主要是查询接口,关于留言接口,需要的字段太多,用户在客户端需要填写的信息过多并不是一个好的体验,所以并没有提供。

?1. 文章列表接口

文章列表返回的字段有:

id,分类id,分类名称,标题,作者id,作者名称,发布时间,评论数量,阅读量

所涉及到的表有:

wp_term_taxonomy,wp_terms,wp_term_relationships,wp_posts,wp_postmeta,wp_users

其中每个表的含义是:

wp_terms ?文章分类与标签

wp_term_taxonomy 标记哪些是分类,哪些是标签

wp_term_relationships 分类或标签与文章的关系

wp_posts 文章信息

wp_postmeta 装的插件的信息

wp_users 用户信息

需要这些表的目的是:

通过wp_terms,wp_term_taxonomy,wp_term_relationships,wp_posts可以获得相应文章分类。

通过wp_posts,wp_postmeta可以获得文章浏览量(前提是装了WP-PostViews插件)。

通过wp_posts,wp_users可以获得作者名称。

2. 文章详情接口

文章详情与文章列表的查询步骤差不多,只是WHERE条件中要多加一条文章id。除此之外,文章详情还需要显示的是文章评论,涉及到的表是wp_comments。

3. 文章查看次数接口

这个接口是用于当文章被查看时,调用增加文章浏览量的。使用前提依然是装了WP-PostViews插件。

4. 文章分类接口

用到了wp_terms,wp_term_taxonomy这两个表,获取全部分类。

5. 根据分类获得文章列表接口

与获取文章列表、文章详情所用的表相同,只需要添加一个判断分类id的条件即可。

四、注意事项

因为本站用了WP-PostViews插件(用来统计文章浏览量的,很好用),所以可以通过wp_postmeta表中的字段来获得文章浏览量,如果没有安装这个插件,那么需要删除SQL语句中与views相关的语句,否则会报错。