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?
źródło
Odpowiedzi:
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 kategoriibanana
i 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).źródło
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:
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.
źródło
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.źródło
Tak to mozliwe.
większość wtyczek jest tworzona przez tak zwane haki:
na przykład:
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 .
źródło