5 способов отключить WordPress JSON REST API без использования плагина

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

Метод 1. Использование файла function.php
Метод 2. Изменение файла.htaccess
Метод 3. Использование плагина отключения REST API
Метод 4. Пользовательский код в обязательном плагине
Метод 5. Отключение маршрутов API с помощью фрагментов кода

Метод 1: использование файла function.php
Один из способов отключить JSON REST API — добавить код в файл functions.phpвашей темы WordPress. Откройте файл functions.phpи добавьте следующий фрагмент кода:

add_filter( 'json_enabled', '__return_false' );
add_filter( 'json_jsonp_enabled', '__return_false' );

Метод 2: изменение файла.htaccess
Другой метод — изменить файл .htaccessв корневом каталоге вашей установки WordPress. Добавьте следующий фрагмент кода в файл .htaccess:

# Block access to the JSON REST API
<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteCond %{REQUEST_METHOD} ^(GET|POST)
  RewriteCond %{REQUEST_URI} ^.*(/wp-json/.*|/oembed/.*|/embed/.*)
  RewriteRule ^(.*)$ - [R=403,L]
</IfModule>

Метод 3: использование плагина отключения REST API
Если вы предпочитаете решение на основе плагина, вы можете использовать плагин «Отключить REST API». Установите и активируйте плагин, и он автоматически отключит JSON REST API.

Метод 4: собственный код в обязательном плагине
Создайте новый файл, например disable-rest-api.php, и поместите его в каталог wp-content/mu-plugins. Добавьте в файл следующий код:

<?php
/*
 * Plugin Name: Disable JSON REST API
 */
add_filter( 'json_enabled', '__return_false' );
add_filter( 'json_jsonp_enabled', '__return_false' );

Метод 5: отключение маршрутов API с помощью фрагментов кода
Вы можете выборочно отключить определенные маршруты JSON REST API, используя фрагменты кода. Добавьте следующий код в файл functions.phpвашей темы:

function disable_rest_api_endpoints( $endpoints ) {
  if ( ! is_user_logged_in() ) {
    unset( $endpoints['/wp/v2/users'] ); // Disable user endpoints
    unset( $endpoints['/wp/v2/posts'] ); // Disable post endpoints
  }
  return $endpoints;
}
add_filter( 'rest_endpoints', 'disable_rest_api_endpoints' );

Отключить WordPress JSON REST API без использования плагина можно с помощью методов, описанных в этой статье. Независимо от того, решите ли вы изменить файлы, такие как functions.phpили .htaccess, использовать обязательный плагин или выборочно отключить маршруты API, у вас есть возможность защитить свой сайт WordPress на основе ваших особые требования. Не забывайте регулярно обновлять и поддерживать свой код, чтобы обеспечить постоянную безопасность вашего веб-сайта.