Zaktualizowałem WordPress do 4.7.1
, a potem próbowałem wyliczyć użytkowników za pomocą REST API, co powinno zostać naprawione, ale udało mi się odzyskać użytkowników.
https://mywebsite.com/wp-json/wp/v2/users
Wydajność:
[{"id":1,"name":"admin","url":"","description":"","link":"https:\/\/mywebsite\/author\/admin\/","slug":"admin","avatar_urls":{"24": ...
Dziennik zmian z najnowszej wersji:
Interfejs API REST ujawnił dane użytkownika dla wszystkich użytkowników, którzy byli autorami postów typu publicznego. WordPress 4.7.1 ogranicza to tylko do typów postów, które określiły, że powinny być wyświetlane w interfejsie API REST. Zgłoszone przez Krogsgard i Chris Jean.
Po zainstalowaniu wtyczki Disable REST API
wydaje się, że wszystko działa dobrze, ale nie lubię używać jej do każdej drobiazgi.
Dane wyjściowe po użyciu wtyczki to:
{"code":"rest_cannot_access","message":"Only authenticated users can access the REST API.","data":{"status":401}}
Jak mogę rozwiązać ten problem bez użycia wtyczki lub dlaczego istnieją nawet po aktualizacji tego stil?
EDYCJA 30.9.2017
Uświadomiłem sobie, że istnieje konflikt między contact 7
wtyczką Disable REST API
i to spowoduje 401 unauthorized
błąd.
Gdy spróbujesz wysłać wiadomość za pośrednictwem contact 7
formularza, zostanie wysłane żądanie
wp-json/contact-form-7/v1/contact-forms/258/feedback
i wyłączenie to nie jest dobry pomysł.
Odpowiedzi:
Użyj tego fragmentu kodu, aby ukryć listę użytkowników i dać wynik 404, podczas gdy pozostałe wywołania interfejsu API będą działać tak, jak były.
Możesz znaleźć ten link na repozytorium gitHub WP_REST_API, aby uzyskać więcej szczegółowych informacji na ten temat.
::AKTUALIZACJA::
Aby usunąć wszystkie domyślne punkty końcowe interfejsu API REST, musisz dodać następujący kod:
<?php remove_action('rest_api_init', 'create_initial_rest_routes', 99); ?>
źródło
functions.php
swoim motywie.Usuń link API z nagłówka HTML, jeśli chcesz.
Następnie wymagaj uwierzytelnienia dla wszystkich żądań.
Spowoduje to pozostawienie żądanej wiadomości.
Teraz, aby zatrzymać wyliczanie, możesz użyć czegoś takiego.
Sprawdź cały post dla dalszych technik.
źródło
Możesz to naprawić poprzez konfigurację nginx / apache:
źródło
Aby to naprawić, musisz najpierw poznać źródło problemu.
Daj mi znać, jeśli to skierowało cię w dobrym kierunku.
Brudnym sposobem na rozwiązanie tego problemu jest po prostu zablokowanie adresu URL pod .htacces. https://mywebsite.com/wp-json/wp/v2/users
źródło