✅ WEB- und WordPress-Nachrichten, Themen, Plugins. Hier teilen wir Tipps und beste Website-Lösungen.

Alternatywa dla WordPress template_redirect Hook

1

Większość pracy, którą teraz wykonuję, skupia się na niestandardowych wtyczkach lub narzędziach, które działają na WordPressie.

Jeśli miałbyś konceptualizować, ile z tworzonych przeze mnie projektów jest połączonych, sprawdziłbyś WordPressa (i wszystko, co się z nim wiąże) jako podstawę, a następnie kod ma warstwę, która komunikuje się z WordPressem i która może się komunikować za pomocą zewnętrznych interfejsów API.

Jednak gdy to robię, często pojawia się komponent front-endowy, który wymaga renderowania informacji do szablonów. Chociaż tworzenie szablonów dla WordPressa nie jest z natury trudne (chociaż żałuję, że nie mamy czegoś więcej niż tylko tagi szablonów – takie jak silnik szablonów, to kolejny post), myślę, że warto przyjrzeć się kilku sposobom obsługi niestandardowych szablony, które dołączyliśmy do wtyczek.

Jedno z pierwszych pytań, które często pojawia się w tym oświadczeniu, brzmi:

Dlaczego miałbyś umieszczać niestandardowe szablony we wtyczce?

I rozumiem to na pewnych poziomach.

  1. Trzymanie szablonów we wtyczce nieco zaciera granice między motywami a wtyczkami, zwłaszcza gdy zostawiasz motywy do prezentacji i wtyczki do logiki biznesowej,
  2. Proszenie użytkowników o kopiowanie plików motywów z jednej lokalizacji do drugiej jest złym doświadczeniem użytkownika.

Ale jest kilka kontrowersji, a może wręcz wyjątków od powyższych przypadków.

WordPress szablon_przekierowanie Hook

Zanim opowiem o haczyku szablonu_przekierowania WordPress, chcę porozmawiać o punktach wymienionych powyżej.

1 Szablony we wtyczkach

Jeśli tworzysz niestandardową wtyczkę, która współpracuje zarówno z WordPress, jak i zewnętrznym API lub która wykorzystuje kombinację repozytoriów, fabryk, modeli i widoków, będziesz musiał wyświetlić te informacje z przodu -koniec i musi być niezależny od motywu.

Nie oznacza to, że ktoś nie może wystylizować elementów na stronie ani uwzględnić szablonu w swojej pracy, ale oznacza to, że wtyczka powinna zapewniać podstawowy poziom informacji, które są renderowane dla użytkownika.

2 Proszenie użytkowników o kopiowanie plików jest złe

Pamiętacie hasło, które Apple kiedyś i często reklamowało jako „ To po prostu działa? „ Nawet jeśli nie jest to coś, co wylewają tak często, jak kiedyś (jeśli w ogóle, to już), podoba mi się pomysł, aby „po prostu pracować" dla użytkownika i jest to coś, do czego staram się dążyć w moim praca.

Więc jeśli chodzi o tworzenie niestandardowych szablonów lub widoków dla wtyczek, nie chcę prosić użytkownika o kopiowanie plików. Chcę tylko, żeby:

  1. zainstaluj wtyczkę,
  2. kliknij aktywuj.

I to wszystko. Reszta powinna być oczywista lub dobrze udokumentowana.

Powrót do haka

Ok, więc załóżmy na chwilę, że zbudowaliśmy wtyczkę, która zawiera kilka podstawowych szablonów (lub widoków w zależności od używanego żargonu) i że szablony muszą być zapisane w głównym katalogu aktywnego motywu.

Możesz użyć haka template_redirect (i robi to wiele popularnych wtyczek). Więcej na ten temat możesz przeczytać tutaj, ale sedno tego jest następujące:

Ten hak akcji jest wykonywany tuż przed tym, jak WordPress określi, którą stronę szablonu ma załadować. Jest to dobry haczyk do użycia, jeśli chcesz wykonać przekierowanie z pełną wiedzą o treści, o którą pytano.

I żeby było jasne, nie odradzam używania tego haka. Po prostu proponuję alternatywę. I to jest to (bo powinno działać następująco):

  1. aktywować wtyczkę,
  2. zlokalizuj aktywny motyw,
  3. jeśli jeszcze nie istnieją, skopiuj pliki szablonów z wtyczki do katalogu głównego aktywnego motywu

Ostatni krok jest krytyczny, ponieważ jeśli pliki szablonów istnieją, ważne jest, aby ich nie zastępować głównie dlatego, że użytkownik mógł napisać ich dostosowania.

Mając to na uwadze, oto jak możesz to zrobić w jednej funkcji (wraz z komentarzami, aby pokazać, czego używasz).

Zauważ, że używa to kilku funkcji PHP. Mianowicie:

Myślę, że wszystkie z nich są przydatne i ważne, aby wiedzieć, niezależnie od charakteru, w jakim ich używasz.

Czy gospodarze to obsługują?

Niektórzy gospodarze to robią. Wiem na pewno, że hosty takie jak WPEngine tego nie robią i nie jest to również krytyka hosta. Niektórzy robią to ze względów bezpieczeństwa; inni na to pozwalają, ale to nie znaczy, że są mniej bezpieczne – oznacza to po prostu, że mają inaczej skonfigurowaną infrastrukturę.

Ostatecznie pokazuje to, że istnieją inne sposoby udostępniania szablonów użytkownikom, gdy używana jest wtyczka, ale nie jest to jedyny sposób i może nie zawsze działać.

Posiadanie opcji jest jednak dobre, zwłaszcza jeśli wolisz określoną architekturę we wtyczce od innej.

Źródło nagrywania: tommcfarlin.com

Diese Website verwendet Cookies, um Ihre Erfahrung zu verbessern. Wir gehen davon aus, dass Sie damit einverstanden sind, Sie können sich jedoch abmelden, wenn Sie möchten. Annehmen Weiterlesen