Jednym z wyzwań, przed którymi stoją twórcy motywów lub wtyczek, get_template_part
jest brak możliwości przekazywania zmiennych do załadowanego szablonu WordPress. Istnieje jednak alternatywa przy użyciu locate_template
.
Przegląd
W tym przykładzie wyświetlimy trzy wpisy Easy Digital Download. Używam EDD od jakiegoś czasu i chociaż ma wiele funkcji, wciąż jest zaskakująco lekki.
Pobieramy wpisy i zapisujemy je w zmiennej $edd_download
. Następnie załadujemy szablon WordPress, przekazując zmienną. W rzeczywistości przekazanie zmiennej to powiedzenie za dużo: po prostu załadujemy szablon w taki sposób, że $edd_download
zmienna ma odpowiedni zakres do użycia w załadowanym szablonie.
Ładowanie szablonu WordPress
Ten kod można umieścić w funkcji. Następnie możesz podłączyć tę funkcję do obszaru swojego motywu za pomocą zaczepu akcji lub po prostu wywołać funkcję jako znacznik szablonu. W moich motywach używam hooków, aby użytkownicy mogli później dodawać lub usuwać treści. To wszystko, czego potrzebujemy do kodu:
Kod szablonu
Teraz potrzebujemy pliku szablonu WordPress. Jeśli zauważysz powyższe wywołanie, locate_template
spodziewa się znaleźć plik download-home.php
w katalogu parts
wewnątrz folderu motywu.
Musimy zawsze pamiętać o wywołaniu wp_reset_postdata()
po pętli foreach, jeśli wywołaliśmy setup_postdata()
.
Słowa zamykające
Więc po tym wszystkim, dlaczego jest to przydatne? ponieważ użytkownicy mogą utworzyć szablon w motywie podrzędnym i łatwo zastąpić oryginalny szablon. Chodzi o ułatwienie życia Twoim użytkownikom. Oczywiście, można to również osiągnąć poprzez filtry lub tworzenie funkcji wtykowych, ale niektórzy użytkownicy mogą uznać edytowanie szablonu skupionego na jednym zadaniu za czystsze podejście niż zajmowanie się plikiem z wieloma funkcjami dla kilku różnych i niepowiązanych zadań.