修改分类列表接口响应

时间:2018-03-06 作者:Kenn

我有一个现有的网站,它使用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得到的结果没有变化)。

有没有想过我做错了什么?

1 个回复
最合适的回答,由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 );

结束

相关推荐

如何基于Customizer控件的类将类添加到Customizer预览?(定制器Java脚本API)

我对定制器javascript API的理解很弱,但我正在尝试。我已经做了一些事情,但现在我需要根据单击自定义程序中的控件将数据发送到自定义程序预览。在自定义程序中单击控件时,类“.invisible”将应用于该控件。基于此,我想隐藏<section class=\"about_me\"></section> 在网站上。控件的值为此类。我该怎么做?以下是我尝试过的:api(\'gm_sortable_sections\', function(setting) { v