Исключить открытую конечную точку ACF из WP REST API

Я использую приведенный ниже фрагмент кода, чтобы предоставить свои расширенные настраиваемые поля (ACF) API WP REST. Это вытягивает около 700 полей в API, когда мне действительно нужно только одно (acf.product_description_rows.product_row_type).

Это способ отфильтровать поля 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;
 }

person user3344734    schedule 28.10.2020    source источник


Ответы (1)


Изменение функции 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.

person j0ste    schedule 28.10.2020
comment
Спасибо - я проверю это. Я попробовал плагин, и пока он работал, я не мог понять, как включать только определенные поля. - person user3344734; 28.10.2020