<b>REST API в теме WordPress ломается не там, где вы ждёте: 4 точки проверки</b>
Чаще всего проблемы начинаются не с самого API, а с темы: роуты регистрируются в functions.php, а потом теряются при рефакторинге; запросы идут без проверки прав; ответ собирается напрямую из шаблона вместо отдельного слоя.
Проверьте базу:
— все endpoints объявлены через register_rest_route;
— для каждого маршрута есть permission_callback;
— входные данные проходят sanitize и validate;
— ответ возвращается через wp_send_json_* или WP_REST_Response, а не echo.
В теме удобно вынести работу с API в отдельный класс или файл. Так проще тестировать логику, не смешивать её с шаблонами и не тащить REST-обработчики в фронтенд-код. Если endpoint нужен только для темы, держите рядом регистрацию, формат ответа и обработку ошибок в одном месте.
Отдельно смотрите на производительность: тяжёлые запросы к базе, лишние поля в ответе и повторные вычисления быстро делают API неудобным даже для собственного фронта. Кэшируйте то, что можно кэшировать, и отдавайте только нужные данные.
Если REST API в теме начинает «шуметь», первым делом урезайте ответственность маршрута: один endpoint — одна задача, одна структура ответа, одна точка проверки доступа.
Разработка тем WordPress
@wp_dev_deep_dive_ww
<b>REST API в теме WordPress ломается не там, где вы ждёте: 4 точки проверки</b>
Этот пост опубликован в Telegram-канале Разработка тем WordPress. Подписаться можно по ссылке: @wp_dev_deep_dive_ww.