Как отключить REST API?

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

Зачем отключать REST API?

Многие владельцы сайтов не нуждаются в управлении своим сайтом каким-либо иным способом, как через админ-панель. Поэтому имеет смысл отключить этот функционал.

Есть несколько способов отключить этот функционал из WordPress-сайта.

Самый простой вариант — воспользоваться плагином Clearfy Pro, о котором мы писали в одном из наших материалов.

Как отключить REST API?

Способ 1. Плагин Disable REST API

Плагин Disable REST API работает “из коробки” и не имеет каких-либо настроек. Для решения задачи его необходимо лишь установить и активировать.

Способ 2. Вручную

Этот способ подойдет для тех, кто не хочет устанавливать на свой сайт дополнительные плагины. В этом случае необходимо будет вручную вставить специальный код в файл Вашей темы functions.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' );

Если Вы не знаете, как редактировать functions.php, то в этом случае Вам поможет плагин ProFunctions.

Способ 3. Плагин Clearfy

Плагин Clearfy Pro, о котором мы писали в одном из наших материалов, среди прочих своих функций, тоже «умеет» отключать REST API.

Для этого необходимо в админ-панели щелкнуть на Clearfy Pro -> Основные и перейти на вкладку Код, где напротив пункта Отключить JSON REST API передвинуть вправо ползунок и нажать кнопку Сохранить изменения.

Отключение REST API в плагине Clearfy Pro

Понравилась статья? Поделиться с друзьями:
WordPress Plus