Nå har du lest om de grunnleggende konseptene for å bruke Twig gjennom Timber, mens du bygger et modulært WordPress-tema. Vi har også studert blokknesting og flere arv med Twig, basert på DRY-prinsippet. I dag skal vi utforske hvordan du viser vedleggsbilder, WordPress-menyer og brukere i et tema med Twig gjennom Tømmer-plugin.
Bilder er en av de viktige elementene for et WordPress-tema. I vanlige WordPress-kodingspraksis, er bilder integrert med PHP inne i de vanlige HTML-bildene. Imidlertid tilbyr Timber en ganske omfattende måte å håndtere img
(bilde) tag som er modulær og ren.
Det er bilder knyttet til innleggets miniatyrfelt. Disse kan enkelt hentes via Twig-filene av post.thumbnail
. Det er bare så enkelt!
La oss komme i gang med et praktisk eksempel. Våre single.php
filen ser slik ut:
Her har jeg brukt
TimberPost ()
Fungerer for ganske åpenbare grunner. Dette brukes i hele Timber for å representere innlegg hentet fra WordPress, slik at de blir tilgjengelige for Twig-maler.Siden det kjennede bildet er festet til postdataene, trenger vi nå å hente det på forsiden. Så Twig filen for det,
single.twig
, vil se slik ut:# Sinlge Mal: 'single.twig' # % utvider "base.twig"% % blokkinnhold%% endblock%På linje # 9 koden
post.thumbnail.src
henter innleggets uthevede (miniatyrbilde) bilde og viser det slik:Du kan bruke denne kodesyntaxen for å hente så mange miniatyrbilder du vil ha.
Det er fortsatt mye mer som du kan eksperimentere med med disse bildene når du bruker Timber. Du kan for eksempel også endre størrelsen på dem via:
Ved å bruke
endre størrelse ()
, funksjon, kan du legge til nye dimensjoner på bildet der den første parameteren erbredde
og den andre erhøyde
. Hvis du vil skalere bildet proporsjonalt, slipper du avhøyde
Egenskap. Nå blir syntaxen:Forsiden viser det samme bildet som dette:
Hvis du vil utforske mer, prøv deretter bildekoken.
Ved hjelp av
TimberImage ()
Tenk på et scenario der en utvikler ønsker å hente bilder via bilde-ID, eller vil vise et eksternt bilde via URL, etc. For en slik utvidet tilnærming tilbyr Timber en klasse,
TimberImage ()
, å representere bildene som hentes fra WordPress.bruk
La oss ta et eksempel på vår
single.php
fil som ser slik ut nå:Denne gangen bruker jeg
TimberImage ()
klasse som tar bilde-ID8
som parameter. Resten av kodingsrutinen er bare den samme. La oss hente dette bildet via Twig-filensingle.twig
.Verdien lagret inne
$ sammenheng
custom_img element, dvs..custom_img
, vil hente bildet via sin ID for å vise på forsiden slik som dette:Hvis du vil hente bildet via en ekstern nettadresse, kan du følge denne syntaksen.
Denne gangen, i stedet for bilde-ID, er det en ekstern bildeadresse som vises på frontenden som denne:
For å utforske flere funksjoner i denne funksjonen, kan du sjekke dokumentasjonen.
Menyer i Timber
Nå, hvordan ville du gå om å gjøre en WordPress-meny med Twig-maler? Det er en vanskelig ting å gjøre. Men hold igjen! Tømmer gir deg det
TimberMenu ()
klassen, som kan hjelpe deg med å gjøre WordPress-menyene i Twig-filer som en komplett sløyfe. La oss ta en titt på det.bruk
Hele konseptet med å hente menyelementene dreier seg rundt menyobjekt. Det er to måter å definere konteksten på. Den første er å gjøre menyobjektet tilgjengelig på hver side ved å legge den til den globale get_context () -funksjonen, som jeg gjorde i
functions.php
fil. For det andre kan du legge til en bestemt meny med sin ID for en bestemt PHP-mal.Uavhengig av de to metodene, når menyen blir tilgjengelig for Timber
$ sammenheng
array, kan du hente alle menyelementene fra den. Men jeg foretrekker å definere det globalt. Så gå tilfunctions.php
fil og lim inn følgende kode:Så, her har jeg definert et egendefinert funksjonsanrop
add_to_context
. Inne i denne funksjonen er noen data som jeg vil være tilgjengelig på hver PHP-mal viaget_context ()
funksjon. På linje # 13 finner du en forekomst avTimberMenu ()
blir sendt mot elementmenyen i$ data
matrise.Dette vil gjøre en standard WordPress-meny tilgjengelig for Twig-malen som et objekt som vi kan løse gjennom. De
TimberMenu ()
Funksjonen kan ta parametere som menybøyle eller ID.La oss lage en Twig-mal som heter
menu.twig
fil.# Menymal: 'menu.twig' #Ovennevnte kode kjører en loop i denne Twig-malen. Linjen # 5 kjører a
til
loop for hvert menyelement og viser tittelen på hver menypunkt
i en uordnet liste. Sløyfen løper til alle nøkkelverdiene par avMeny
objektet er iterert og oppført på fronten.Jeg gikk videre og inkluderte
menu.twig
mal ibase.twig
mal på linje # 11.# Base mal: 'base.twig' # % blokk html_head_container% % include 'header.twig'% % endblock% % inkluderer "menu.twig"%% blokkinnhold%% inkluderer "footer.twig"%UNNSKYLD! Ingen innhold funnet!
% endblock%