Как удалить неиспользуемые поля в WP REST API для оптимизации WordPress

WP REST API — мощный инструмент для работы с данными WordPress через внешние приложения и фронтенд. Однако по умолчанию в ответах API возвращается много полей, которые не всегда нужны. Это увеличивает размер ответов, снижает производительность и может раскрывать лишнюю информацию. В этой статье расскажем, как удалять неиспользуемые поля из REST API, чтобы сделать ответы легче, быстрее и безопаснее.

Почему важно оптимизировать поля в WP REST API

По умолчанию REST API WordPress возвращает множество метаданных, вложенных объектов и полей, которые не всегда нужны вашему приложению или сайту. Это приводит к нескольким проблемам:

  • Больший объем данных. Увеличивается время передачи данных по сети и нагрузка на сервер.
  • Безопасность. Некоторые поля могут раскрывать внутренние данные, которые не должны быть публичными.
  • Сложность обработки. Большие ответы сложнее обрабатывать на клиенте, особенно в мобильных приложениях.

Удаление ненужных полей сделает API более "чистым" и удобным для работы.

Какие поля можно удалить из WP REST API

В зависимости от задачи вы можете убрать:

  • Поля метаданных (custom fields), если они не используются во фронтенде.
  • Поля автора, если данные автора не нужны.
  • Поля формата даты, статуса публикации, ссылок на вложения и другие технические поля.
  • Вложенные объекты, например, категории или теги, если достаточно ID.

Удалять нужно с осторожностью, чтобы не сломать логику вашего сайта или приложения.

Как программно удалить поля из REST API в WordPress

Самый надежный способ — использовать фильтр rest_prepare_post или аналогичный для своего типа записи. Ниже пример функции, которая удаляет несколько полей из ответа API для записей:

function clearfy_restapi_remove_fields(\WP_REST_Response $response, \WP_Post $post, \WP_REST_Request $request) {
    $data = $response->get_data();

    // Удаляем поле "author"
    unset($data['author']);

    // Удаляем поле "featured_media"
    unset($data['featured_media']);

    // Удаляем поле "comment_status"
    unset($data['comment_status']);

    // Удаляем поле "ping_status"
    unset($data['ping_status']);

    // Удаляем поле "meta" (если не нужно)
    if (isset($data['meta'])) {
        unset($data['meta']);
    }

    $response->set_data($data);
    return $response;
}
add_filter('rest_prepare_post', 'clearfy_restapi_remove_fields', 10, 3);

Такой код добавьте в файл functions.php вашей темы или в свой плагин. Он удалит перечисленные поля из всех ответов API по записям.

Удаление полей для произвольных типов записей

Для кастомных типов записей замените rest_prepare_post на rest_prepare_{post_type}, например:

add_filter('rest_prepare_product', 'clearfy_restapi_remove_fields', 10, 3);

где product — ваш тип записи.

Удаление полей из пользовательских эндпоинтов и таксономий

Если у вас есть кастомные REST эндпоинты, вы можете использовать аналогичные фильтры rest_prepare_{taxonomy} и rest_prepare_{custom_namespace}_{route} для очистки данных.

Например, чтобы убрать поля из таксономии категорий:

function clearfy_restapi_remove_category_fields($response, $term, $request) {
    $data = $response->get_data();
    // Удаляем поле description
    unset($data['description']);
    $response->set_data($data);
    return $response;
}
add_filter('rest_prepare_category', 'clearfy_restapi_remove_category_fields', 10, 3);

Использование плагина Clearfy Pro для оптимизации REST API

Если вы не хотите писать код, в плагине Clearfy Pro есть раздел для управления REST API, где можно отключать ненужные эндпоинты и поля без кода.

Плюсы использования Clearfy Pro:

  • Интуитивный интерфейс для отключения полей.
  • Безопасность: легко скрыть чувствительные данные.
  • Оптимизация скорости сайта за счет уменьшения данных.

Советы по тестированию и отладке

После удаления полей из REST API обязательно протестируйте работу вашего сайта или приложения:

  • Проверьте, что фронтенд корректно загружает данные и не ломается.
  • Используйте инструменты разработчика в браузере для проверки ответов API.
  • Тестируйте на разных типах записей и страницах.

Если что-то сломалось, верните удаленные поля или уточните, какие из них действительно нужны.

Итого

Оптимизация WP REST API путем удаления неиспользуемых полей — важный шаг к ускорению сайта и повышению безопасности. Используйте фильтры rest_prepare_{post_type} для программного удаления, либо плагин Clearfy Pro для удобного управления. Такой подход уменьшит объем передаваемых данных и сделает ваш сайт более эффективным.

Добавь в закладки и поделись с друзьями:

⭐⭐⭐⭐⭐
Как удалить неиспользуемые поля ACF в WordPress для оптимизации базы данных
18.03.2026
Оптимизация размеров изображений в WordPress для ускорения сайта
20.05.2025
Как удалить бесполезные метаданные в WordPress без риска
12.03.2026
Как удалить неиспользуемые шорткоды в WordPress: практическое руководство
11.04.2026
Как удалить неиспользуемые поля в WP REST API для оптимизации WordPress
15.04.2026
×
Оптимизируй свой сайт!

Скидка -15% на премиум плагин Clearfy Pro

Купить плагин сейчас ⋙