从WP REST API中排除暴露的ACF端点

问题描述

我正在使用以下代码段将我的高级自定义字段(ACF)暴露给WP REST API。当我真的只需要一个(acf.product_description_rows.product_row_type)时,这会将大约700个字段拖入API

这是一种过滤ACF字段且仅包含一个字段的方法吗?

add_action( 'rest_api_init','bsd_register_acf_with_api' );
function bsd_register_acf_with_api() {
 if (!function_exists('get_fields')) return;

 register_rest_field(
 'product','acf',array(
  'get_callback' => 'bsd_add_acf_fields',)
 );
}

function bsd_add_acf_fields( $object,$field_name,$request ) {
 $acf = get_fields( $object['id'] );
 return $acf;
 }

解决方法

像这样的更改功能bsd_add_acf_fields()应该可以做到:

function bsd_add_acf_fields( $object,$field_name,$request ) {
  $acf = get_field( 'product_row_type',$object['id'] );
  return $acf;
}

您可以改为使用插件ACF to REST API