Напишем свой кастомный маршрут 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