WP WordPress REST API (_links) — это мощная функция, которая позволяет разработчикам взаимодействовать с данными WordPress с помощью HTTP-запросов. Однако в некоторых случаях вам может потребоваться удалить свойство _links из ответа API, чтобы повысить производительность или скрыть ненужные данные. В этой статье мы рассмотрим различные методы удаления _links из WP REST API, а также приведем примеры кода.
Метод 1: изменение ответа с помощью фильтра rest_prepare_post
function remove_links_from_rest_response($data, $post, $context) {
if ($context === 'view' && is_array($data) && isset($data['_links'])) {
unset($data['_links']);
}
return $data;
}
add_filter('rest_prepare_post', 'remove_links_from_rest_response', 10, 3);
Метод 2: пользовательская конечная точка без _links
function custom_endpoint_without_links(WP_REST_Request $request) {
$post = get_post($request['id']);
return array(
'id' => $post->ID,
'title' => $post->post_title,
'content' => $post->post_content,
// Add other desired properties
);
}
function register_custom_endpoint_without_links() {
register_rest_route('custom/v1', '/post/(?P<id>\d+)', array(
'methods' => 'GET',
'callback' => 'custom_endpoint_without_links',
));
}
add_action('rest_api_init', 'register_custom_endpoint_without_links');
Метод 3. Использование фильтра restprepare{$post_type}
function remove_links_from_rest_response_by_post_type($data, $post, $context) {
if ($context === 'view' && is_array($data) && isset($data['_links'])) {
unset($data['_links']);
}
return $data;
}
add_filter('rest_prepare_post_type', 'remove_links_from_rest_response_by_post_type', 10, 3);
Метод 4. Изменение ответа JSON с помощью rest_request_after_callbacks
function remove_links_from_rest_response_json($response, $handler, $request) {
if ($request->get_route() === '/wp/v2/posts' && isset($response->data['_links'])) {
unset($response->data['_links']);
}
return $response;
}
add_filter('rest_request_after_callbacks', 'remove_links_from_rest_response_json', 10, 3);
В этой статье мы рассмотрели различные методы удаления _links из ответа WP REST API. В зависимости от ваших требований и необходимого уровня настройки вы можете выбрать наиболее подходящий метод. Удалив _links, вы можете повысить производительность, уменьшить количество ненужных данных и создать более чистые ответы API. Поэкспериментируйте с этими методами и выберите тот, который лучше всего подходит для вашего проекта.