当您使用WP API的搜索机制请求帖子时,它会将标签作为帖子的属性之一返回,但它是一个标签ID数组,而不是标签名称。有没有一种方法可以让API包含标签的名称,而不必通过每个标签的标签ID向API发出后续请求?
tags: [
188,
30,
151,
189
]
我在API文档中找不到任何能做到这一点的参数,所以我想创建一个自定义插件,以便在将响应发送回API调用方之前过滤并用标记ID替换名称。在这种情况下,我应该听取什么样的行动?
最合适的回答,由SO网友:The Unknown Dev 整理而成
根据我在这里的发现我找到了一些东西post.
基本上,我需要一个插件来监听REST响应何时发出。插件代码类似于以下内容:
function ag_filter_post_json($response, $post, $context) {
$tags = wp_get_post_tags($post->ID);
$response->data[\'tag_names\'] = [];
foreach ($tags as $tag) {
$response->data[\'tag_names\'][] = $tag->name;
}
return $response;
}
add_filter( \'rest_prepare_post\', \'ag_filter_post_json\', 10, 3 );
它将标记名添加为一个名为
tag_names
. 其余的重物由
wp_get_post_tags
作用