Я обновил свой WordPress до 4.7.1
, и после этого я попытался перечислить пользователей через REST API, что должно быть исправлено, но я смог получить пользователей.
https://mywebsite.com/wp-json/wp/v2/users
Выход:
[{"id":1,"name":"admin","url":"","description":"","link":"https:\/\/mywebsite\/author\/admin\/","slug":"admin","avatar_urls":{"24": ...
Журнал изменений из последней версии:
API REST предоставил пользовательские данные для всех пользователей, которые создали публикацию открытого типа. WordPress 4.7.1 ограничивает это только типами записей, которые указали, что они должны отображаться в REST API. Об этом сообщили Крогсгард и Крис Жан.
После установки плагина Disable REST API
кажется, что все работает нормально, но я не люблю использовать для каждой мелочи плагин.
Вывод после использования плагина:
{"code":"rest_cannot_access","message":"Only authenticated users can access the REST API.","data":{"status":401}}
Как я могу исправить эту проблему, не используя плагин, или почему даже после обновления этот стиль все еще существует?
РЕДАКТИРОВАТЬ 30.9.2017
Я понял, что существует конфликт между contact 7
плагином, Disable REST API
и это даст вам 401 unauthorized
ошибку.
Когда вы попытаетесь отправить сообщение через contact 7
форму, он сделает запрос
wp-json/contact-form-7/v1/contact-forms/258/feedback
и отключить это не очень хорошая идея.
Ответы:
Используйте этот фрагмент кода, он скроет список пользователей и даст 404 в результате, в то время как остальные вызовы API продолжают работать, как они были.
Вы можете обратиться к этой ссылке в репозитории gitHub WP_REST_API для получения более подробной информации об этом.
::ОБНОВИТЬ::
Чтобы удалить все конечные точки API REST по умолчанию, необходимо добавить следующий код:
<?php remove_action('rest_api_init', 'create_initial_rest_routes', 99); ?>
источник
functions.php
вашей теме.Удалите ссылку API из заголовка HTML, если хотите.
Затем требуется аутентификация для всех запросов.
Это оставит вас с желаемым сообщением.
Теперь, чтобы остановить перечисление, вы можете использовать что-то вроде этого.
Проверьте весь пост для дальнейших методов.
источник
Вы можете исправить это через конфигурацию nginx / apache:
источник
Чтобы это исправить, сначала нужно узнать источник проблемы.
Пожалуйста, дайте мне знать, если это указало вам правильное направление.
Грязный способ решить эту проблему - просто заблокировать URL-адрес в ваших .htacces. https://mywebsite.com/wp-json/wp/v2/users
источник