Свой маршрут api для обновления ACF полей в WordPress

0
75

Напишем свой кастомный маршрут api для обновления полей ACF. В запросе api будут два обработчика — POST и GET. GET — будет выводить любую информацию по запросу пользователя по id поста — метод my_awesome_func(). POST — будет обновлять определенную запись по id поста — метод my_awesome_func_two().

$request — параметр методов, в который приходят данные из запросов POST и GET через api.

Строка update_field(‘field_65c5cbb2d73ea’, $response[‘files’], $response[‘id’]);
означает, что будет обновлено поле ACF с id field_65c5cbb2d73ea у поста с id $response[‘id’]. $response[‘files’] — это значение поля ACF (что туда буде записано).

// Свой маршрут rest api ACF

add_action( 'rest_api_init', function(){

register_rest_route( 'update_acf/v2', '/post/', array(
array(
'methods' => 'GET',
'callback' => 'my_awesome_func',
),
array(
'methods' => 'POST',
'callback' => 'my_awesome_func_two',
'args' => array(
'id' => array(
'type' => 'string', // значение параметра должно быть строкой
'required' => true, // параметр обязательный
),
'files' => array(
'type' => 'string', // значение параметра должно быть строкой
'required' => true, // параметр обязательный
),
),
'permission_callback' => function( $request ){
// только авторизованный юзер имеет доступ к эндпоинту
return is_user_logged_in();
},
// или в данном случае можно записать проще
'permission_callback' => 'is_user_logged_in',
)
) );

} );

function my_awesome_func( WP_REST_Request $request ){

return 'test';
}

function my_awesome_func_two( WP_REST_Request $request ){

$response = array(
'id' => $request->get_param('id'),
'files' => $request->get_param('files')
);

update_field('field_65c5cbb2d73ea', $response['files'], $response['id']);

return $response;
}

Проверить работу данного маршрута api можно с помощью программы Postman:

/wp-json/update_acf/v2/post/ — строка маршрута api
1629 — id поста
string_value — значение поля ACF

ОСТАВЬТЕ ОТВЕТ

Пожалуйста, введите ваш комментарий!
пожалуйста, введите ваше имя здесь