Технология JSON REST API WordPress нужна для внешнего управления сайтом. В WordPress, начиная с версии 4.4, в ядро была добавлена такая возможность, которая позволяет создавать и редактировать контент без входа в админ-панель. Обычно такими инструментами пользуются, когда ВордПресс-сайт имеет огромное количество материалов, и админка начинает тормозить.
Интерфейс JSON REST API позволит получить доступ к материалам WP-сайта, используя при этом любой внешний интерфейс, написанный с помощью одного из доступных на сегодняшний день веб-языков, или приложение.
Как работает и зачем отключать REST API в WordPress?
В последних версиях “движка” REST API был включен в ядро. Это означает, что он начинает работать автоматически уже установки свежей копии WordPress, добавляя на каждой странице сайта строку <link rel='https://api.w.org/' href='http://site.ru/wp-json/' />
. Если вы создаете контент только в админ-панели своего сайта, тот этот функционал не нужен. Плюс в коде всех страниц присутствует ненужная внешняя ссылка. Также этим функционалом успешно пользуются злоумышленники для проведения DDoS-атак. А это отнимает много ресурсов хостинга, и как следствие – замедляет работу веб-ресурса.
Как отключить REST API WordPress?
Есть несколько способов. Рассмотрим популярные и часто используемые.
Способ 1. Плагин Disable REST API
Бесплатный плагин Disable REST API – отдельное решение, которое выполняет одну функцию – отключает этот интерфейс. Модуль не нужно настраивать, он работает сразу после установки и активации.
Результат работы плагина легко проверить. Для этого откройте любую страницу своего WordPress-сайта и нажмите комбинацию клавиш [Ctrl]+[U]
. Если в разделе <head>
не будет найдена вышеуказанная строка, то технология успешно отключена.
Способ 2. С помощью файла functions.php
Этот способ предусматривает редактирование содержимого файла functions.php
вашей активной WordPress-темы.
Если по каким-либо причинам не хотите файл функций, то в этом случае Вам поможет плагин ProFunctions.
В указанный файл вставьте следующие строки PHP-кода:
add_filter('rest_enabled', '__return_false'); remove_action( 'xmlrpc_rsd_apis', 'rest_output_rsd' ); remove_action( 'wp_head', 'rest_output_link_wp_head', 10, 0 ); remove_action( 'template_redirect', 'rest_output_link_header', 11, 0 ); remove_action( 'auth_cookie_malformed', 'rest_cookie_collect_status' ); remove_action( 'auth_cookie_expired', 'rest_cookie_collect_status' ); remove_action( 'auth_cookie_bad_username', 'rest_cookie_collect_status' ); remove_action( 'auth_cookie_bad_hash', 'rest_cookie_collect_status' ); remove_action( 'auth_cookie_valid', 'rest_cookie_collect_status' ); remove_filter( 'rest_authentication_errors', 'rest_cookie_check_errors', 100 ); remove_action( 'init', 'rest_api_init' ); remove_action( 'rest_api_init', 'rest_api_default_filters', 10, 1 ); remove_action( 'parse_request', 'rest_api_loaded' ); remove_action( 'rest_api_init', 'wp_oembed_register_route' ); remove_filter( 'rest_pre_serve_request', '_oembed_rest_pre_serve_request', 10, 4 ); remove_action( 'wp_head', 'wp_oembed_add_discovery_links' ); remove_action( 'wp_head', 'wp_oembed_add_host_js' );
Код уберет лишнюю ссылку из шапки сайта и полностью отключит REST API WordPress.
Способ 3. Плагин Clearfy Pro
Премиум-плагин Clearfy Pro – мощное универсальное решение для оптимизации, ускорения и защиты WordPress-сайтов. Также он отключает REST API.
- В админке перейдите в раздел Clearfy Pro.
- На вкладке Код активируйте опцию Отключить JSON REST API.
- Нажмите кнопку Сохранить изменения.
Преимущество использования Clearfy Pro для деактивации JSON REST API WordPress в том, что для этого не нужно заниматься правкой каких-либо файлов сайта или поиском отдельных решений, которые часто пишутся непрофессионалами и могут вызывать ошибки.