Właśnie zainstalowałem Wordpress 4.7. Jednym z wzmianek w ogłoszeniu jest to, że zawiera interfejs API REST.
Rozumiem:
- Wtyczka REST API Wordpress nie jest już potrzebna, ponieważ przypuszczalnie została już scalona z rdzeniem w Wordpress 4.7.
- Interfejs API REST Wordpress jest domyślnie włączony
Zauważam jednak, że w waniliowej instalacji Wordpress 4.7 żaden z punktów końcowych nie działa (na przykład http://examples.com/wp-json/wp/v2/posts
).
Jak mogę sprawdzić, czy nowy interfejs API REST jest naprawdę aktywowany? Czy interfejs API REST można włączyć lub wyłączyć za pomocą waniliowego interfejsu Wordpress UI, czy powinienem w tym celu zainstalować wtyczkę innej firmy?
<link rel='https://api.w.org/' href='https://example.com/wp-json/' />
Wydaje się, że po prostu działa na moich stronach.grep -r "<link rel='https://api.w.org/'" .
whtml
katalogu, zwraca jedno trafienie w pliku./wp-includes/rest-api.php
z tym tekstem:echo "<link rel='https://api.w.org/' href='" . esc_url( $api_root ) . "' />\n";
<link href="http://example.com/wp-json/" rel="https://api.w.org/">
Odpowiedzi:
4.7 ma to włączone domyślnie. Najłatwiejszym sposobem sprawdzenia, czy działa, jest odwiedzenie adresu URL example.com/wp-json i tam powinna zostać wyświetlona lista zarejestrowanych punktów końcowych
Nie ma oficjalnej opcji, aby ją wyłączyć, ponieważ (przynajmniej była rozmowa o tym, nie wiem, czy dostała się w wersji), niektóre podstawowe funkcje zależą od tego.
Najbardziej oczywistymi rzeczami, które należy sprawdzić, jeśli nie działa, są reguły htaccess i czy masz katalog wp-json
źródło
/var/www/html
ani w jego podkatalogach. Wydaje mi się, że nie mam.htaccess
pliku (poza tym/var/www/html/wp-content/plugins/akismet/.htaccess
, czy powinienem go mieć?)AllowOverride All
w<Directory "/var/www/html">
sekcji/etc/httpd/conf/httpd.conf
. Dlatego ignorował moje zmiany w.htaccess
. Teraz z permalinkiem innym niż PLain, punkty końcowe interfejsu API REST działają.Miałem również 4.7, że interfejs API REST został wyłączony, ale URL mnie oszukał. Aby zobaczyć poprawny adres URL, wyszukaj wiersz wyglądający mniej więcej tak:
link rel = '
https://api.w.org/
' href = 'http://mysite?rest_route=/
' />. Tak więc użycie http: // mysite? Rest_route = / jako prefiksu rozwiązało mój problem. Na przykład, aby odzyskać posty wystarczy wpisać: http: // mysite? Rest_route = / wp / jsonNie mogłem znaleźć w dokumentacji, że parametr zapytania był potrzebny. Czy byłem jedyny?
źródło
www.example.com?rest_route=/wp/v2/posts
Widzę, że rozwiązałeś problem, ale pozostawiłeś tutaj moje rozwiązanie, ponieważ zadziałało również dla mnie. Miałem ten sam problem podczas aktualizacji z wersji beta15 do podstawowego interfejsu API w WP 4.7. Okazało się, że miałem kilka wtyczek, które używały przestarzałej funkcji register_api_field, którą zmieniłem na register_rest_field zgodnie z tą uwagą w dzienniku zmian:
źródło
Jeśli interfejs API REST nie działa od razu po instalacji lub po nowej instalacji i po wpisaniu
wtedy musisz po prostu aktywować swoje „bezpośrednie linki” jako nazwę post_name:
Pulpit nawigacyjny WP-> Ustawienia-> Permalinks
Lub jeśli nie chcesz aktywować bezpośrednich łączy, możesz po prostu wpisać:
Człowieku, chciałbym, żeby WordPress zaktualizował swój podręcznik Rest, aby był bardziej przyjazny dla użytkownika. Podoba mi się stara wersja dokumentów :)
źródło