描述
通过 WordPress API 可以操作 WordPress 站点的方方面面,比如文章增删改查、选项管理、主题修改、插件开发等等。
按照功能特征,这些 API 被分为不同的章节,详细内容参考官方 WordPress APIs 手册。
我们这里主要关注 REST API,通过 REST API 能够操作 WordPress 站点,比如文章变更、分类设置等等。
该笔记将记录:在 WordPress 中,如何通过 REST API 进行文档操作,以及常见问题解决办法。
应用
在旧版本(不记得什么时候了)的 WordPress 中,并没有内置 REST API,貌似需要单独安装;
在新版本(也不知道哪个版本开始)的 WordPress 中,已经内置了 REST API,可以直接使用;
# 03/13/2020 目前,我们使用的是 4.9 版本,所以这里是基于 WordPress 4.9 版本进行介绍;
# 05/08/2022 现在,我们使用 5.9.3 版本,追随官方更新,该笔记是对之前内容不断补充的结果;
参考 REST API Handbook 手册,以获取更多的官方说明。
第一步、添加 NGINX 重写
接口地址通常是 http://example.org/wp-json/wp/v2 的形式,鉴于 wp-json/ 并非目录,所以需要配置 Nginx 重写来传递给 index.php 处理:
location / { try_files $uri $uri/ /index.php?$args; }
当修改配置且重启 Nginx 后,可以访问 http://example.org/wp-json/wp/v2 以验证是否配置成功。
第二步、安装认证插件并配置
如果没有认证插件,只能进行查询,不能进行增删改。参考 Authentication 手册,获取对于认证相关内容的官方说明。
我们采用 Application Passwords 认证插件,创建密码的大致流程如下(详细的使用方法请仔细阅读插件描述):
1)在管理页面,进入某个用户的信息设置页面;
2)页面最底部,New Application Password Name,该字段仅是标识密码,仅注释作用;
3)点击 Add New Application Password 按钮,将自动生成密码,请注意保存;
# 05/08/2022 我们发现该插件已经合并到 WordPress 5.6 版本(Application Passwords);
第三步、修改文章测试
上述配置完成后,即可访问 REST API 来测试文章的创建:
# 如下命令,将创建标题为 New Title 的文章: curl --header "Authorization: Basic $(echo -n 'username:application-passowrd' | base64)" \ -X POST \ -d "title=New Title" \ https://example.com/wp-json/wp/v2/pages
1)Authorization: Basic ... 表示使用基础认证,建议使用 curl 推荐的传参方式。
2)认证信息,通过 echo -n "username:password" | base64 命令生成;
注意,在命令echo -n "admin:password"中,
1)amdin是登录管理后台的帐号,不是创建认证口令时的命名,这点插件描述中已经注明;
2)password不是登录管理后台的 admin 密码,而是在 Application Passwords 认证插件中创建的口令;
相关文档
文章、分类、评论等等的接口地址参考「Reference」手册。
REST API Handbook / Reference / Categories
REST API Handbook / Reference / Posts
参考
WP REST API
REST API Handbook
REST API – Create, Update or Delete posts using Basic Auth and HTTP API