问题的根源是 ACF(Advanced Custom Fields)插件的 Rest API 功能不能正确地返回分类术语对象。此问题可以通过添加一个过滤器函数来解决。以下是代码示例:
function acf_rest_api_fix_categories_field($data, $post, $context) { $terms = array(); $categories = get_the_category($post->ID); $terms_list = wp_list_pluck($categories, 'term_id'); foreach($terms_list as $term_id) { $term = get_term($term_id); $terms[] = array( 'term_id' => $term_id, 'name' => $term->name, 'slug' => $term->slug ); } $data['categories'] = $terms; return $data; } add_filter('acf/rest_api/get_fields', 'acf_rest_api_fix_categories_field', 10, 3);
实际上,该函数将重新生成分类术语数组,以确保它在 ACF Rest API 中被正确返回,并且包含所需的信息。将该代码段添加到您的主题的 functions.php 文件中,并重新保存它,您的 ACF Rest API 现在应该能够正确返回分类术语对象。