W ostatnim artykule na temat przyszłych funkcji, które WordPress może rozważyć, dodałem dodanie języka szablonów do rdzenia.

Jednym z takich języków jest Twig, a implementacja już istnieje dla WordPressa za pośrednictwem wtyczki Timber.

Co to jest język szablonów, jak działa w środowisku WordPress i czy jest wart wysiłku?

Twig logo
Języki szablonów mogą przynieść ogromne korzyści do tworzenia motywów WordPress

Twig, od SensioLabs, jest “elastycznym, szybkim i bezpiecznym silnikiem szablonów dla PHP”.

W skrócie, Twig dostarcza meta-język (jest kompilowany do PHP) specjalnie zaprojektowany do przekształcania danych w sformatowane dane wyjściowe. To wyjście jest na ogół HTML, ale nie musi nim być-może to być całkiem szczęśliwie XML, JSON lub dowolny zwykły format tekstowy.

Wynik jest generowany przez dostarczenie silnikowi Twig wymaganych danych (jako obiekt PHP) i wskazanie mu, który szablon ma być renderowany. Silnik dba o resztę.

Ale po co się zmieniać? Istnieją tysiące istniejących motywów WordPress, które wydają się robić dobrze (niektóre bardziej niż w porządku) przy użyciu PHP. O co chodzi z językami szablonowymi?

Zalety Korzystania Z Języka Szablonów

Strona internetowa Twig wymienia 6 głównych zalet korzystania z języka szablonów Twig:

  1. Zwięzłe – w porównaniu do PHP, Twig jest bardzo zwięzły co ułatwia pisanie i utrzymanie
  2. Szablon orientowany – jest to język, który jest przeznaczony do tworzenia danych wyjściowych, a nie jest językiem wielofunkcyjnym, takim jak PHP
  3. W pełni funkcjonalny – Gałązka jest potężna, z dziedziczeniem i blokami, dzięki czemu modułowa konstrukcja jest bardzo łatwa.
  4. Łatwy do nauczenia – na pewno nie musisz być programistą, aby opanować gałązkę
  5. Rozszerzalność – programiści mogą dodawać wtyczki, aby zapewnić, że Twig może pokryć wszelkie wymagania front-end
  6. Szybki – ta przewaga może zależeć od tego, jak ocenisz swoje umiejętności PHP, ponieważ Twig jest kompilowany do PHP. Myślę, że jest bardzo prawdopodobne, że dla mnie, przynajmniej, wynik PHP będzie lepszy niż to, co mogę wymyślić.

Największą Zaletą Jest Oddzielenie Danych Od Projektu

To, co naprawdę podoba mi się w Twig, to to, że całkowicie oddziela dane od projektu. Twig to silnik szablonów: dostarczasz mu Dane i mówisz, który szablon ma być renderowany.

Oznacza to, że podstawowa aplikacja zajmuje się teraz tylko zestawianiem tych danych, nie ma wymogu dla własnych motywów. W przypadku WordPressa oznacza to również, że wtyczki stają się skoncentrowane na danych, podczas gdy kontrole front-end, takie jak suwaki, stają się domeną gałązki.

Jak Wygląda Gałązka?

Twig jest przeznaczony do pracy z dowolną aplikacją PHP i bardzo łatwo jest go uruchomić do testowania (kolejna jego zaleta). Prosty plik PHP do renderowania szablonu może wyglądać następująco:

Ładowanie gist d57d16ef5adc6005565d

I rzeczywisty szablon gałązki:

Ładowanie gist d57d16ef5adc6005565d

Wszystko bardzo proste i dużo czystsze niż tradycyjny mix PHP / HTML. W rzeczywistości istnieje kilka CMS, takich jak Pico, które używają tego rodzaju podejścia (a może trochę bardziej wyrafinowane, chociaż opisuje się jako “głupio proste”!) do generowania stron.

Timber: Bringing Twig To WordPress

Jesteśmy oczywiście zainteresowani gałązką i WordPressem i jest to wtyczka do drewna, która łączy te dwa elementy. Z jakiegoś powodu w repozytorium WordPress są Wtyczki 2 o nazwie Timber, więc upewnij się, że masz odpowiedni!

Wtyczka jest imponującym dziełem Boston editorial designers Upstatement i wykonuje trzy główne zadania:

  1. Integruje Silnik Twig z WordPress
  2. Tworzy podstawowy zestaw danych WordPress
  3. Obsługuje renderowanie szablonów Twig

Podczas gdy w normalnym szablonie WordPress mieszasz zestawienie danych i jego późniejsze formatowanie w tych samych plikach PHP (pomyśl o pętli), szablon drewna dzieli dwie funkcje. W swojej podstawowej formie plik szablonu zajmuje się tylko zestawianiem danych, a następnie wykorzystaniem tych danych do renderowania szablonu lub widoku, jeśli chcesz, który jest przechowywany w oddzielnym pliku.

Przykład bardzo pomoże, więc przejdźmy przez jeden.

Oto indeks.plik php dla motywu Bosco (wybrałem ten motyw, ponieważ jest dość prosty):

Ładowanie gist d57d16ef5adc6005565d

Motyw zawiera znajomą pętlę WordPress i wykorzystuje get_template_part funkcja do generowania wyników dla każdego posta na liście. (Na przykład założymy, że wszystkie posty są w standardowym formacie.)

Z drewna, choć, indeks.php zajmuje się jedynie zestawianiem wymaganych danych:

Ładowanie gist d57d16ef5adc6005565d

Wykorzystuje wstępnie wypalone metody drewna, aby uzyskać ogólne dane, a następnie renderuje indeks.gałązka szablon:

Ładowanie gist d57d16ef5adc6005565d

Niewiele w tym szablonie, ponieważ zastosowałem to samo modułowe podejście, co oryginał (tj. kod, który jest używany w wielu lokalizacjach, jest umieszczony we własnym pliku), ale już widzimy zwięzłą naturę Twig i potężne funkcje w pracy.

Po pierwsze, jest else na na oświadczenie. Działa jak else na jeśli instrukcja i wykona, jeśli posty zmienna jest pusta. Nie trzeba owijać na w dodatkowym jeśli oświadczenie. Możliwe jest również wykonywanie działań na podstawie wartości indeksu pętli, na przykład wyprowadzanie nagłówka w pierwszej iteracji lub stopki w ostatniej iteracji.

Po drugie, jest użycie dziedziczenia gałązek. W tym przypadku indeks szablon rozszerza baza szablon i dostarczanie treści do bloku treści.

Rzućmy okiem na baza szablon:

Ładowanie gist d57d16ef5adc6005565d

Jest import instrukcja na górze pliku, która sprawia, że niektóre niestandardowe makra są dostępne dla wszystkich plików. Dla zwięzłości zachowałam oryginał get_header, get_sidebar oraz get_footer funkcji (ale wywoływanych przy użyciu drewna) i tak jedynym blok czy zawartość blok.

Spójrzmy więc na treść.gałązka szablon:

Ładowanie gist d57d16ef5adc6005565d

To jest bardziej interesujące.

Ten szablon dotyczy tylko wyprowadzania jednego artykuł element i jest to dość łatwe do ustalenia, co się dzieje, nawet bez znajomości języka gałązki.

Wszystkie zmienne sprawdzane w jeśli wypowiedzi lub są wyprowadzane w {{ }} instrukcje są składane przez plik PHP i przekazywane do szablonu Twig.

Wtyczka Timber nie tylko zestawia większość samych danych, ale także zapewnia kilka podstawowych elementów WordPress. Na przykład treść posta jest dostępna za pośrednictwem poczta.post_content jest to jednak surowa zawartość, więc drewno zapewnia poczta.zawartość metoda, która zwróci zawartość po zastosowaniu wszystkich filtrów i uruchomieniu wszystkich skrótów.

Na dole tego szablonu zobaczysz, że istnieje kilka wywołań do makr: aby wyświetlić meta postu i wyświetlić kategorie postów i tagi.

Makra są przechowywane w pliku gałązki (nazwałem go makra.gałązka ale może to być dowolna nazwa), która jest importowana w baza.gałązka szablon. Nie mają one automatycznego dostępu do danych, więc są one przekazywane do makr:

Ładowanie gist d57d16ef5adc6005565d

W tym miejscu zaczynają świecić zalety rozszerzalnego języka szablonów. Makro może być cokolwiek od wyprowadzania post meta do skomplikowanego menuing do pełnoekranowego suwaka i zamiast być dodawanym jako wtyczka, po prostu dodaje się go jako makro gałązki. Wszystko, co musi się wydarzyć po stronie PHP, to upewnić się, że makro ma DANE, których potrzebuje.

OK, ale PHP i Twig? Czy to nie podwojenie?

Ogólnym założeniem jest, że motyw z drewna będzie zgodny z ogólną konwencją i utworzy plik PHP dla każdego szablonu, którego może wymagać motyw, używając hierarchii szablonów WordPress jako przewodnika.

Jak wiemy, hierarchia szablonów to wspaniała rzecz. To pozwala nam łatwo uzyskać bardzo szczegółowe z naszych szablonów. Jeśli chcemy wypisywać listy postów kategorii inaczej niż inne archiwa, tworzymy Kategoria.php plik i automatycznie zostanie użyty. Jeśli chcemy uzyskać jeszcze bardziej szczegółowe informacje i mieć naszą listę kategorii sportowych wyświetlane inaczej niż inne kategorie to tworzymy Kategoria-sport.php.

Pozwala to na niesamowitą elastyczność bez konieczności rekonfigurowania-wystarczy wrzucić szablon do katalogu tematycznego o odpowiedniej nazwie, a automatycznie zajmie on jego miejsce w szablonie.

Z drewna i gałązki, Ponieważ pliki PHP są po prostu zestawianie danych tam wydaje się być dość dużo powtórzeń. W związku z tym można skorzystać z hierarchii szablonów WordPress i utworzyć tylko jeden indeks.php które mogą wygenerować potrzebne nam dane, a następnie opracować odpowiedni szablon gałązki do renderowania:

Ładowanie gist d57d16ef5adc6005565d

Drewno Zasługuje Na Bliższe Spojrzenie

To był krótki przegląd tego, co jest potężną i prowokującą do myślenia wtyczką, a jeśli zaostrzy Twój apetyt, zdecydowanie polecam zainstalowanie wtyczki, przeglądanie dokumentacji Timber and Twig i albo chwytanie motywu startowego Timber (część pakietu wtyczek) lub Konwersja istniejącego motywu, aby poczuć, jak to wszystko działa.

Myślę, że to, co zrobisz z drewna i gałązki, będzie prawdopodobnie zależeć od rodzaju motywu, który próbujesz zbudować. Pasek boczny ciężki, widget załadowany temat nie jest najlepszym wyborem i warto zauważyć, że Upstatement są bardzo skoncentrowane na organizacjach prasowych.

Możesz również zauważyć, że brakuje ci danych i będziesz musiał rozszerzyć drewno lub po prostu zaktualizować komponenty PHP swojego motywu, aby upewnić się, że wszystkie wymagane dane (na przykład dane zalogowanego użytkownika) są dostarczane do szablonów Twig.

To, co naprawdę podoba mi się w kombinacji drewna i gałązki, to oddzielenie danych i projektu, co oznacza, że projektowanie motywu dla WordPress (lub dowolnego innego CMS, który używa gałązki, oczywiście) nie wymaga żadnej znajomości PHP, a może nawet nie tak dużej wiedzy o samym WordPress.

Uzgodnij, jakie dane zostaną udostępnione, a programista i projektant motywów mogą naprawdę pracować na stronie jednocześnie.

Ewentualny Dodatek Do Rdzenia WordPress?

Zalety języka szablonów sprawiają, że uważam, że należy go poważnie traktować jako potencjalną aktualizację rdzenia WordPress.

Ostatnio wiele napisano o potrzebie powrotu motywów WordPress do czystości, tylko do projektowania i do podziału funkcjonalności na wtyczki. Jeśli nic innego, Twig zmusza twórcę motywu do podążania tą ścieżką.

Możesz sobie wyobrazić, że zbudowanie zestawu danych i udostępnienie go silnikowi szablonów, takim jak Twig, byłoby stosunkowo proste, chociaż ogromna biblioteka istniejących motywów i ogromna baza Instalacji mogą okazać się ogromną przeszkodą.

Nie oznacza to jednak, że gałązka i jej podobiznę należy natychmiast odrzucić. Języki szablonów przynoszą duże korzyści do tworzenia motywów, z których nie najmniej jest to poziom prostoty, którego często brakuje w tradycyjnym motywie WordPress.

Tylko z tego powodu warto zbadać gałązkę za pomocą wtyczki Timber.

Czy masz doświadczenie z używaniem języka szablonów na WordPress lub innym CMS?

Tagi:

You May Also Like

Jak naprawić nieprawidłowy błąd JSON w WordPress (Przewodnik dla początkujących)

W artykule: Co powoduje błąd “nieprawidłowa odpowiedź JSON” w WordPress?1. Sprawdź adresy…

Jak naprawić błąd krytyczny w WordPress (krok po kroku)

W artykule: Co To jest błąd krytyczny w WordPress?Co powoduje krytyczny błąd…

Jak zmienić kolor linku w WordPress (poradnik dla początkujących)

W artykule: Dlaczego Linki Są Ważne?Jak dodawać linki w postach i stronach…

9 Najlepsze Darmowe Wtyczki WordPress Author Bio Box

W artykule: 1. Simple Author Box2. Branda3. Autor postu WP4. Author Bio…