有很多方法可以使用所需的信息操作WP Rest API。
其中一种方法是直接在REST中过滤
post
对象,使用rest_prepare_{$post_type}
过滤器。
另一种方法是使用register_rest_field
函数注册一个新的“REST字段”。
使用第一种方法,您可以执行简单的操作,例如获取类别名称并将其作为新数据字段放置:
add_filter( 'rest_prepare_post', 'my_filter_post', 10, 3 );
function my_filter_post( $data, $post, $context ){
// Does this have categories?
if( !empty($data->data['categories']) ){
// Loop through them all
foreach( $data->data['categories'] as $category_id ){
// Get the actual Category Object
$category = get_category( $category_id );
if( $category->parent == 0 ){
// "top level" category
$data->data['parent_category'] = $category->name;
} else {
// some child level category
$data->data['child_category'] = $category->name;
}
}
}
return $data;
}
get_ancestors()
函数或其中的许多“获取分层cat/terms”答案之一,特别是如果你有多个“父级 > 子级”的关系或每篇文章有多个级别的分类 - 但rest_prepare_{$post_type}
或register_rest_field
应该能够轻松地获得你想要的结果。