Mam witrynę WordPress.org, która pobiera dane od użytkowników, przeszukuje niestandardową bazę danych i wyświetla wyniki zapytania. Mam to działa przy użyciu klasy wpdb . Teraz próbuję uruchomić to dla aplikacji na Androida.
Z tego, co rozumiem, budowanie serwera RESTful jest obecnie „najlepszą praktyką” w tego typu sprawach. Szukałem wtyczek, które mogłyby mi to pomóc, i natknąłem się na:
json-rest-api - Wydaje mi się, że ujawnia to tylko podstawową funkcjonalność WordPressa (tj. posty, strony, użytkowników itp.) i nie widzę, jak to zrobić, aby wykonywać niestandardowe zapytania w tabelach innych niż domyślne.
Ten post na blogu mówi, że wp mvc robi dokładnie to, co chcę, z wyjątkiem tego, że nie było aktualizowane od ponad 2 lat, więc to trochę wyklucza.
Istnieje również Jetpack, ale z tego, co widziałem, json-rest-api jest zaktualizowaną wersją tego i wydaje się, że zapewnia również podstawową funkcjonalność.
Czy istnieje sposób, aby jedna z tych wtyczek działała dla niestandardowych punktów końcowych? Czy są jeszcze inne wtyczki, których jeszcze nie znalazłem?
Jeśli nie użyję wtyczki, myślę, że musiałbym sam wyrzucić. Można to zrobić zarówno od podstaw (za pomocą wpdb
, msqli
lub czegoś), lub za pomocą interfejsu API, takich jak Restler .
Jeśli wykonam rzut własny, czy powinienem utworzyć szablon w moim motywie, wykonaj tam czynności REST i przypisz ten motyw do strony w panelu? Czy może lepiej byłoby mieć inny serwer działający osobno dla WordPress?
O ile widzę, to moje jedyne opcje. Chciałbym wiedzieć, jakie są zalecane najlepsze praktyki w tego typu sprawach. Trudno mi uwierzyć, że nikt inny tego nie zrobił. Czy są jakieś opcje, które przeoczyłem?
Odpowiedzi:
TL; DR
Tak, WordPress z pewnością może działać jako backend dla aplikacji mobilnej. Tak, strona może działać jako spoczynkowy punkt końcowy / interfejs. Nie, szablon motywu nie jest właściwym terytorium dla logiki. Napisz własną wtyczkę.
Wskaźniki
Ja, na przykład, mam. Więcej niż raz. I jestem prawie pewien, że nie jestem sam. „Nikt nie pisał o tym na blogach” to prawdopodobnie bardziej poprawne pojęcie.
Nie znam „Restlera”, który i tak nie mieści się w tym stosie.
Jeśli chodzi o „korzystanie z wpdb, msqli lub coś”: z pewnością użyłbyś
wpdb
do zapisania (odebranych) danych w bazie danych, ale nie dotyczy to logiki punktu końcowego.Szablon motywu nie jest tym, na co powinieneś spojrzeć. Motywy są przeznaczone do prezentacji wizualnej. Punkt końcowy REST wcale nie wymaga wyglądu.
Wstaw punkt końcowy na stronie, której chcesz użyć, za pomocą krótkiego kodu .
Niech moduł obsługi krótkiego kodu / oddzwonienie nasłuchuje HTTP POST lub GET i odpowiednio wywołuje zapisywanie danych lub inne metody wtórne.
Czy warto używać WordPressa jako punktu końcowego / zaplecza?
To zależy.
Jeśli wszystko, czego potrzebujesz, to punkt końcowy do zapisywania danych: Nie. Ładowanie całego rdzenia tylko w celu zapisania kilku wierszy kodu za pomocą
wpdb
nie jest tego warte.Jeśli potrzebujesz backendu, do którego można się zalogować za pomocą przeglądarki internetowej, która może wyświetlać dane tabelaryczne, oferować sposoby zmiany tych danych, może nawet przy wielu poziomach dostępu / rolach użytkowników i prawach, to tak, to ma sens.
źródło
wpdb
nie jest tego warte”.Wtyczka API Endpoints powinna zaspokoić wszystkie Twoje potrzeby, szczególnie jeśli znasz MySQL. Wykonaj następujące kroki:
Utwórz nowy szablon Twig, wprowadź zapytanie MysQL, aby pobrać dane z witryny WordPress i użyj składni Twig, aby wyprowadzić dane w dowolnym formacie. Na przykład JSON.
Utwórz nowy punkt końcowy interfejsu API, nadaj mu nazwę i skonfiguruj go, aby używał szablonu Twig utworzonego w kroku 1.
Po zakończeniu powtórz kroki 1 i 2 dla każdego punktu końcowego, który chcesz utworzyć. Punkty końcowe API używają standardowego systemu uwierzytelniania WordPress, dlatego najlepiej byłoby utworzyć osobnego użytkownika w WordPress i użyć jego nazwy użytkownika / hasła, aby uzyskać dostęp do punktów końcowych interfejsu API.
źródło
Nowa wersja WP REST API jest w wersji Beta, ale ma dość dobrą dokumentację dotyczącą rejestracji niestandardowych punktów końcowych REST. Jest też bardzo mała informacja o tym, jak można to zrobić w wersji 1, którą zamierzam wypróbować, ponieważ nie gwarantuje się, że beta będzie stabilna. Zakładam, że możesz użyć wpdb z zarejestrowanych metod. Właściwie używam tylko plików ACF i przejmuję je do obiektów w moim php, aby stworzyć ładną, przeszukiwalną / sortowalną stronę indeksu z wieloma właściwościami z angularJS.
Porównanie między WWP REST API 1 i 2 z ich dokumentów
źródło