Korzystasz z zewnętrznego API w WordPress?

9

Mam klienta, który ma witrynę WordPress, a on chce ją rozszerzyć, aby dodać nowe funkcje. Te funkcje są zawarte w witrynie, którą już zrobiłem (rodzaj wyszukiwarki w bazie danych, z niektórymi filtrami), i która jest pod nowymi ulepszeniami.

Planuję zrobić json api z mojej witryny (z wszystkimi funkcjami wyszukiwania w mojej bazie danych) i sprawić, że witryna wordpress będzie korzystać z tego interfejsu, wtedy będę musiał tylko utworzyć widoki, aby wyświetlić wyniki wyszukiwania.

Problem polega na tym, że w ogóle nie znam WordPressa (dla mnie jest to coś, w którym można dodawać artykuły za pomocą panelu administratora ...) i nie wiem, jak możemy napisać w nim własny kod po stronie serwera. Szukałem w Google i znalazłem coś, co nazywa się „wtyczką”, ale zastanawiam się, czy jest to możliwe i czy jest to najprostszy sposób, ponieważ nie muszę używać kodu przez żadną inną osobę przyjęcie. Jeśli możliwe jest zhakowanie instalacji WordPress w celu dodania moich plików PHP, zakoduj to, czego potrzebuję (moje widoki z tym samym css WordPress), byłoby to prostsze, ale nie wiem, czy to możliwe?

Tahir
źródło
Co dokładnie próbujesz zrobić, przeczytaj kanał Json w Wordpress, wstaw dane do bazy danych, opublikuj przez XML-RPC, postaraj się być bardziej przejrzysty.
Wyck
czytaj kanał Json. na przykład witryna wordpress powinna zawierać formularz wyszukiwania, podczas przesyłania wykona wywołanie get do interfejsu API, api zwróci obiekty w formacie json, a ja powinienem wyświetlić te wyniki na stronie witryny wordpress
tahir
1
@tahir Próbuję to zrobić. Czy byłbyś w stanie podzielić się tym, jak osiągnąłeś swój cel?
SAHM

Odpowiedzi:

9

Krótki podkład na temat rozwoju WordPress, który może ci pomóc lub wprowadzić w błąd:

Najważniejsze, aby pamiętać: wszystko to po prostu PHP. A także: nie edytuj podstawowych plików WordPress, ponieważ będziesz miał kłopoty, gdy później zaktualizujesz do nowszej wersji. Jedyny kod, który należy edytować, to wtyczki i motywy.

Jeśli potrzebujesz tylko dodać coś do istniejącej strony, może to być po prostu edycja odpowiedniego pliku motywu. Jeśli jednak musisz zrobić coś zaawansowanego (a dodanie dodatkowego „widoku”, np. Pod konkretnym adresem URL, jest bardziej zaawansowane w WordPress), musisz dodać kod w miejscu, które zostanie załadowane wcześniej w procesie uruchamiania WordPress .

Powodem tego jest to, że WordPress zawsze wysyła zapytanie do Ciebie na podstawie adresu URL. Idziesz do /category/banana/, będzie wyszukiwać posty kategorii bananai załadować poprawny plik szablonu, w którym musisz tylko zapętlić i wyświetlić je. Jednak jeśli przejdziesz do /custom-view/, WordPress prawdopodobnie nie znajdzie żadnego posta i załaduje szablon 404 - nie daje to łatwego sposobu na odzyskanie!

Niektóre osoby rozwiązują to, tworząc „strony pośredniczące”: tworzą stronę w WordPressie, w której treść nie jest ważna, tylko szablon jest: tam robią wszystko, co tylko chcą. To jest hackish, ale działa. Oczywistym sposobem byłoby zdefiniowanie dodatkowych reguł przepisywania , dzięki którym WordPress będzie wiedział, że /custom-view/jest to prawidłowy adres URL, ale coś innego powinno się tam zdarzyć.

Jeśli chcesz to zrobić, musisz podłączyć się do podstawowego systemu WordPress. Ważną częścią jest tutaj podłączenie , a nie modyfikacja . WordPress ma akcje i filtry . Akcja to tylko ogłoszenie ( „Hej, obecnie piszemy <head>tag. Chcesz też coś dodać?” ). Filtr pozwala modyfikować zmienną ( „To jest tytuł postu. Jeśli chcesz ją zmodyfikować, zwróć nową wartość” ). Oczywiście sztuczka polega teraz na tym, aby wiedzieć, jakich działań i filtrów należy użyć. Zależy to od wybranego sposobu (strony pośrednie lub nowe reguły przepisywania), więc nie będę tu wchodził w szczegóły.

Akcje i filtry określasz w pliku wtyczki lub w pliku functions.php kompozycji. Są wyjątkowe, ponieważ są ładowane podczas uruchamiania WordPressa , więc przed wykonaniem głównego zapytania i tak dalej. Plik wtyczki to po prostu plik PHP umieszczony w wp-content/plugins/katalogu ze specjalnym nagłówkiem, dzięki czemu WordPress może odczytać jego nazwę i wyświetlić go w obszarze administracyjnym, w którym można go włączyć i wyłączyć (dzięki czemu można pozostawić wtyczkę w katalogu, ale tymczasowo wyłącz to).

Jan Fabry
źródło
2

Podstawy

Musisz omówić podstawy dotyczące wtyczek i motywów. W skrócie: stanowią uzupełnienie podstawowej funkcjonalności wordpress. Zwykle „Wtyczki” bardziej dotyczą funkcjonalności, a „Motywy” bardziej dotyczą „widoku”. Możesz także przeczytać trochę o „API wtyczek” .

JSON

Możesz użyć skryptu json2 wbudowanego w rdzeń, aby zapewnić „bezpieczny” interfejs API.

Przykład JSON

Reszta byłaby mniej więcej taka:

$response = json_encode( array( 
     'data' => $your_output 
) );
header( "Content-Type: application/json" );
echo $response;

XML Rpc

Kodeks ma również coś na temat „XML Rpc” .

HTTP API

Inną możliwością mogą być żądania HTTP . Pamiętaj, aby przeczytać referencje na dole linku.


Haki internetowe

Jest to dodatkowe, ponieważ bardziej dotyczy dostarczania konsumpcyjnego interfejsu API. Wyjaśnienie tutaj . Jest też wtyczka o nazwie HookPress, która wykonuje tę pracę za Ciebie. Niektóre slajdy od autora.

kajzer
źródło
1

Zakładam, że znasz PHP? Czy to też jest bariera?

Zasadniczo wtyczki w WordPress to konwencja, w jaki sposób pakować kod PHP, aby był rozpoznawany i obsługiwany przez rdzeń WordPress. Jest to format, a nie funkcjonalność.

Jeśli chodzi o rzeczywistą funkcjonalność, możesz praktycznie uruchomić dowolne PHP, ale dobrą praktyką jest używanie interfejsów API WP w celu zapewnienia kompatybilności i niezawodności.

Pomyśl o swoim kodzie w kontekście WP jako include(który będzie technicznie). Stamtąd zakres twoich potrzeb i zasobów decyduje o tym, ile z nich zostanie przepisanych, aby były specyficzne dla WordPress.

Rarst
źródło
0

Tak to mozliwe.

większość wtyczek jest tworzona przez tak zwane haki:

na przykład:

add_action("hook", "function")

zbudowanie wtyczki jest dość łatwe, gdy wiesz, jak działa ten framework, cóż ... działa ... Radziłbym się z nim zapoznać, najbardziej obszerne miejsce na wiedzę (choć nie najlepiej zorganizowane - jak php. net) to kodeks wordpress .

Itai Sagi
źródło