夜火笔记

wordpress REST API 如何按post_type进行筛选过滤

2023-06-13
笔记 wordpress
2分钟
314字

最近有个需求,是将一个主题自带的侧栏插件,做成ajax加载,这样就需要API接口请求数据了。我知道wordpress有自带的REST API 可以调用,但是实际使用中,并不能实现我的需求,具体情况如下。

踩坑

侧栏的文章在数据库中的 post_type 为 custom ,通过wordpress自带的REST API请求数据

刚开始由于没开启伪静态,请求链接为 http://www.xxx.com/?rest_route=/wp/v2/posts,我心想,直接在后面加参数 &post_type=custom 不就搞定了,然而实际并不行。

然后以为是没有开启伪静态的原因,后来试了下 http://www.xxx.com/wp-json/wp/v2/posts?post_type=custom 也还是不行,始终只显示post_type 为 post 的普通文章。

http://www.xxx.com/wp-json/wp/v2/custom 这样访问也不行。

由于对wordpress的不熟悉,试了各种方式都不行,搞的火大,都想完全自己写了。

解决

后经多方查找,看到一篇文章:https://www.mxp.tw/9292/,需要在定义 post_type 的地方进行修改。

于是找到主题中定义的地方 register_post_type() ,增加一个 show_in_rest ⇒ true, 就可以了。

根据我的使用需求,实测 rest_base 与 rest_controller_class 可以不用修改。

现在,http://www.xxx.com/wp-json/wp/v2/customhttp://www.xxx.com/?rest_route=/wp/v2/custom ,都可以获取对应post_type 为 custom 的文章了

参考:

https://www.mxp.tw/9292/

本文标题:wordpress REST API 如何按post_type进行筛选过滤
文章作者:夜火/xloong
发布时间:2023-06-13
Copyright 2026
站点地图