WordPress wraz z wersją 4.7 otrzymał REST API. Dzięki niemu, w łatwy sposób możemy uzyskać dane w formacie JSON z naszego systemu zarządzania treścią. Jest to świetna alternatywa dla motywów. Rozwiązanie to ma wiele zalet, ale też kilka wad, które teraz pokrótce opiszę.
Zalety WordPress REST API
Główną zaletą jest brak konieczności znajomości języka PHP. Nie korzystamy tu z żadnych funkcji, pętli etc. Jedyne co musimy podać to odpowiedni endpoint, który zwróci nam żądane dane. Co więcej, korzystanie z tego API jest dość proste i intuicyjne. Sytuacja, w której nie wiedziałem, jak skonstruować dany endpoint zdarzyła mi się raz. Kolejną zaletą jest to, że możemy osadzić naszego WordPressa na innym serwerze niż nasza aplikacja.
Wady WordPress REST API
Główną wadą korzystania z tego API jest bardzo mocno okrojona możliwość korzystania z głównej siły WordPressa, jaką są wtyczki. Oczywiście są wtyczki, które mają wsparcie dla tego rozwiązania — przykładem może być Advanced Custom Fields, gdzie do dyspozycji mamy pełne wsparcie dla API, ale zdecydowana większość wtyczek tego wsparcia nie posiada.
Jak zacząć korzystać z WordPress REST API?
Z WordPress REST API możesz rozpocząć korzystać zarówno z poziomu klasycznych klientów HTTP, jak i z poziomu kodu aplikacji. O tym, jak wykorzystać WordPress REST API w aplikacji JavaScript dowiesz się z artykułu o klientach HTTP w JavaScript.
Pierwsze zapytanie do REST API WordPressa
Aby zacząć korzystać z API, musimy znać ścieżkę do niego. Domyślną ścieżką w najnowszej wersji jest http://example.com/wp-json/wp/v2/
. Być może zastanawiasz się dlaczego na końcu jest v2
. Spowodowane jest to tym, że pierwsza wersja API została oznaczona jako deprecated, natomiast wciąż można z niej korzystać. Konwencja ta znana jest również jako wersjonowanie API.
Po skorzystaniu z wyżej podanej ścieżki otrzymamy swojego rodzaju cheat sheet, gdzie mamy opisane tak naprawdę wszystko, czego potrzebujemy, by skonstruować dowolny endpoint. Co więcej, informacje te dostępne są też w języku polskim!
Następnie podajemy, co konkretnie chcemy podać. Możemy na przykład żądać wpisów, kategorii, użytkowników, tagów, stron, a nawet komentarzy i taksonomii.
Gdy już wiemy jaki typ informacji chcemy otrzymać, możemy określić dodatkowe argumenty. Takie argumenty podajemy po znaku zapytania. Argumentem może być na przykład liczba wyników (domyślnie jest ustawione na 10), sortowanie, numer konkretnej strony z wynikami czy slug. Samych parametrów jest znacznie więcej, a dokładne opisy wszystkich znajdziesz w dokumentacji.
Inaczej wygląda sprawa, jeśli chodzi o ID. Ten parametr podajemy po ukośniku bez podawania nazwy parametru. Poniżej znajdziesz przykładowe endpointy.
Wpis ten skupia się głównie na odczytywaniu danych. Oczywiście możemy również w ten sposób publikować, aktualizować i usuwać dane. W przypadku aktualizowania i publikowania danych musimy podać zestaw danych w body zapytania.
Podsumowanie
Wiedząc już czym jest WordPress REST API najwyzszy czas wykorzystać je w praktyce. Zachęcam Cię do przetestowania omówionego API i podzielenia się odczuciami w komentarzach. Koniecznie sprawdź źródła i materiały dodatkowe, ponieważ znajdziesz tam sporo materiałów pomocnych w pracy z REST API.
Jeśli nie korzystamy z REST API WordPressa to warto go sobie zablokować, aby uniknąć włamań tamtą drogą.
Odnośnie używania WordPress REST API to kiedyś napisałem tekst u siebie na ten temat: https://blog.piotrnalepa.pl/2017/03/24/php-jak-zwiekszyc-wydajnosc-rest-api-wbudowanego-w-wordpress/
Słuszna uwaga!