Как открыть все поля ACF для Wordpress REST API как на страницах, так и на пользовательских типах - PullRequest
0 голосов
/ 06 июня 2019

Я хочу предоставить все поля ACF, принадлежащие странице или пользовательскому типу записи, API-интерфейсу WordPress REST для выполнения некоторых вызовов API через javascript.

Окончательный ожидаемый результат - все ACFполя внутри ACF объекта, к которому вы можете легко получить доступ.

Ответы [ 2 ]

1 голос
/ 06 июня 2019

С помощью следующего кода вы сможете открывать page и свои собственные поля ACF для пост-типов в WordPress REST API и получать к ним доступ внутри объекта ACF.

Очевидно, что вы можете настроить типы сообщений для исключения или включения в массивы: $postypes_to_exclude и $extra_postypes_to_include.

function create_ACF_meta_in_REST() {
    $postypes_to_exclude = ['acf-field-group','acf-field'];
    $extra_postypes_to_include = ["page"];
    $post_types = array_diff(get_post_types(["_builtin" => false], 'names'),$postypes_to_exclude);

    array_push($post_types, $extra_postypes_to_include);

    foreach ($post_types as $post_type) {
        register_rest_field( $post_type, 'ACF', [
            'get_callback'    => 'expose_ACF_fields',
            'schema'          => null,
       ]
     );
    }

}

function expose_ACF_fields( $object ) {
    $ID = $object['id'];
    return get_fields($ID);
}

add_action( 'rest_api_init', 'create_ACF_meta_in_REST' );

Вот суть для справки: https://gist.github.com/MelMacaluso/6c4cb3db5ac87894f66a456ab8615f10

0 голосов
/ 06 июня 2019

Вы можете использовать следующий плагин для представления полей ACF в REST.

https://wordpress.org/plugins/acf-to-rest-api/

Если ваши поля ACF имеют отношение и хотите также включить эти отношения в покой,Вы можете использовать следующий плагин.

https://github.com/airesvsg/acf-to-rest-api-recursive

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...