我有一个现有的网站,它使用WordPress后端进行发布,还有一个自定义Rails前端显示WP内容(以及其他内容)。
我对WordPress API所做的一件事是修改帖子的API响应,以便添加额外的数据并去掉前端不需要的属性。这很有效。
现在,我正在尝试对类别进行类似的操作。我正在构建一个显示WP类别的页面,我想修改API响应以包含类别图像URL(带有WPCustom类别图像插件提供的类别图像功能)。
我发现rest_prepare_taxonomy
但它的表现似乎与rest_prepare_post
做
这就是我修改帖子查询的方式(其中modify_api_post_response()
是我编写的用于修改响应的函数):
add_filter(\'rest_prepare_post\', \'modify_api_post_response\', 12, 3);
对执行相同操作
rest_prepare_taxonomy
另一个自定义函数对响应数据没有影响。
add_filter(\'rest_prepare_taxonomy\', \'modify_api_taxonomy_response\');
我尝试了各种优先级值,结果都是一样的(即,我从WP得到的结果没有变化)。
有没有想过我做错了什么?
最合适的回答,由SO网友:JHoffmann 整理而成
如果使用API响应一个或多个类别,则查询的是术语,而不是分类法。所以你不应该使用WP_REST_Taxonomies_Controller
而是WP_REST_Terms_Controller
.
而不是挂接到过滤器rest_prepare_taxonomy
, 尝试挂钩到rest_prepare_{$this->taxonomy}
相反在使用分类法“类别”时,请将其用作rest_prepare_category
:
add_filter( \'rest_prepare_category\', \'modify_api_taxonomy_response\', 10, 3 );