X

Корректное отключение REST API WordPress – инструкция 2020 года

Приветствую!
В этой коротенькой заметке я напишу, как правильно отключить REST API WordPress в последней версии движка. Будет приведен обновлённый хук (код) взамен старого, который перестал работать.

Отключение REST API WordPress без плагина (обновлённый код)

Не секрет, что с версии WordPress 4.7 REST API стал частью ядра и отключение происходит иным образом (с помощью обновлённого хука).

До версии движка WordPress 4.7 REST API отключался данным хуком:

// Filters for WP-API version 1.x
add_filter('json_enabled', '__return_false');
add_filter('json_jsonp_enabled', '__return_false');

// Filters for WP-API version 2.x
add_filter('rest_enabled', '__return_false');
add_filter('rest_jsonp_enabled', '__return_false');

Если у вас активирован DEBUG режим, и вы пользовались данным хуком, то в логе вы можете увидеть следующее: Функция rest_enabled с версии 4.7.0 считается устаревшей! Используйте rest_authentication_errors. REST API более не может быть полностью отключен, вместо этого для ограничения доступа к API может быть использована rest_authentication_errors.

В последней версии WordPress для отключения используется хук:

add_filter( 'rest_authentication_errors', 'code_disable_rest_api' );

function code_disable_rest_api( $access ) {
 return new WP_Error( 'rest_disabled', __( 'REST API disabled' ), array( 'status' => rest_authorization_required_code() ) );
}

Данный код необходимо внести в файл functions.php используемой вами темы. Если вы ранее уже редактировали данный файл, то этот процесс не должен вызвать у вас сложностей.

Отключение REST API WordPress с помощью плагина

Несомненно, REST API WordPress лучше отключить простым хуком, который был приведён выше. Но если вы испытываете затруднения с редактированием файлов WordPress, то можете использовать для отключения плагин.

Данный плагин называется Disable REST API и устанавливается стандартным образом – через интерфейс движка WordPress.

Проверка отключения REST API WordPress

Для проверки корректности отключения REST API добавьте к URL вашего сайта wp-json (пример: http://example.ru/wp-json/) – если при открытии данного URL адреса высветилась коротенькая строчка, то это означает, что REST API WordPress успешно отключен.

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

Привет.
Не секрет, что в экономике ныне дела обстоят не лучшим образом, цены растут, а доходы падают. И данный сайт также переживает нелёгкие времена :-(
Если у тебя есть возможность и желание помочь развитию ресурса, то ты можешь перевести любую сумму (даже самую минимальную) через форму пожертвований, или на следующие реквизиты:

Номер банковской карты: 5331 5721 0220 5546
Кошелёк ЮMoney: 410015361853797
DonationAlerts: https://www.donationalerts.com/r/it_actual_ru
BitCoin: 1DZUZnSdcN6F4YKhf4BcArfQK8vQaRiA93

Оказавшие помощь:
Сергей И. - 500руб
<аноним> - 468руб
<аноним> - 294руб
Мария М. - 300руб
Валерий С. - 420руб
<аноним> - 600руб
Полина В. - 240руб

Деньги пойдут на оплату хостинга, продление домена, администрирование и развитие ресурса. Спасибо.
С уважением, создатель сайта IT-Actual.ru

Очень нужна твоя помощь!
Прочти, пожалуйста (ссылка откроется в новом окне)


Я не собираюсь помогать, закрыть это окно