Nu har du läst om de grundläggande begreppen att använda Twig genom Timber, samtidigt som du bygger ett modulärt WordPress-tema. Vi har också studerat blocknest och flera arv med Twig, baserat på DRY-principen. Idag ska vi utforska hur man visar bilagor, WordPress menyer och användare i ett tema med Twig genom Timber plugin.
Bilder är en av de viktigaste elementen för ett WordPress-tema. I vanliga WordPress-kodningspraxis integreras bilder med PHP i de vanliga HTML-bildtaggarna. Men Timber erbjuder ett ganska omfattande sätt att hantera img
(bild) taggen som är modulär och ren.
Det finns bilder kopplade till postens miniatyrfält. Dessa kan enkelt hämtas via Twig-filerna av post.thumbnail
. Det är bara så enkelt!
Låt oss komma igång med ett praktiskt exempel. Vår single.php
filen ser så här ut:
Här har jag använt
TimberPost ()
funktion för ganska uppenbara skäl. Detta används i hela Timber för att representera inlägg som hämtas från WordPress, vilket gör dem tillgängliga för Twig-mallar.Eftersom den utvalda bilden är kopplad till postdatan behöver vi nu hämta den på framsidan. Så Twig filen för den,
single.twig
, kommer att se ut så här:# Sinlge Mall: 'single.twig' # % utökar "base.twig"% % block content%% endblock%På rad # 9 koden
post.thumbnail.src
hämtar postens utseende (miniatyrbild) och visar den så här:Du kan använda denna kodsyntax för att hämta så många miniatyrbilder som du vill ha.
Det finns fortfarande mycket mer som du kan experimentera med med dessa bilder när du använder Timber. Du kan till exempel ändra storlek på dem via:
Genom att använda
ändra storlek ()
, funktion kan du lägga till nya dimensioner till bilden där den första parametern ärbredd
och den andra ärhöjd
. Om du vill skala bilden proportionellt, släpp sedan borthöjd
attribut. Nu blir syntaxen:Fronten visar samma bild så här:
Om du vill utforska mer, försök sedan bildkokboken.
Använder sig av
TimberImage ()
Tänk på ett scenario där en utvecklare vill hämta bilder via bild-ID, eller vill visa en extern bild via URL etc. För ett sådant utökat tillvägagångssätt erbjuder Timber en klass,
TimberImage ()
, för att representera bilderna som hämtas från WordPress.Användande
Låt oss ta ett exempel för vårt
single.php
fil, som ser ut så här nu:Den här gången använder jag
TimberImage ()
klass som tar bilden ID8
som dess parameter. Resten av kodningsrutinen är bara densamma. Låt oss hämta den här bilden via Twig-filensingle.twig
.Värdet lagrat inuti
$ sammanhang
custom_img-element, dvs.custom_img
, kommer att hämta bilden via sitt ID för att visa på framsidan så här:För att hämta bilden via en extern webbadress ersätter du kan följa den här syntaxen.
Den här gången, istället för bild-ID, finns en extern bildadress som visas på frontänden så här:
För att utforska några fler funktioner i den här funktionen kan du kontrollera dokumentationen.
Menyer i Timber
Nu, hur skulle du gå om att göra en WordPress-meny med Twig-mallar? Det är en knepig sak att göra. Men håll fast! Timmer ger dig det
TimberMenu ()
klass, som kan hjälpa dig att göra WordPress-menyerna i Twig-filer som en komplett slinga. Låt oss ta en titt på det.Användande
Hela konceptet att hämta menyalternativen kretsar runt menyobjekt. Det finns två sätt att definiera sitt sammanhang. Den första är att göra menyobjektet tillgängligt på varje sida genom att lägga till den i den globala get_context () -funktionen, som jag gjorde i
functions.php
fil. För det andra kan du lägga till en viss meny med sitt ID för en viss PHP-mall.Oavsett de två metoderna, när menyn blir tillgänglig för timmerverket
$ sammanhang
array, kan du hämta alla menyalternativ från den. Men jag föredrar att definiera den globalt. Så gå tillfunctions.php
fil och klistra in följande kod:Så här har jag definierat ett anpassat funktionssamtal
add_to_context
. Inne i denna funktion är några data som jag vill vara tillgänglig på varje PHP-mall viaget_context ()
fungera. På rad # 13 kan du hitta en förekomst avTimberMenu ()
skickas mot elementmenyn i$ uppgifter
array.Detta gör en vanlig WordPress-meny tillgänglig för Twig-mallen som ett objekt som vi kan gå igenom. De
TimberMenu ()
funktionen kan ta parametrar som menyns slug eller ID.Låt oss skapa en Twig-mall som heter
menu.twig
fil.# Menymall: 'menu.twig' #Ovanstående kod kör en loop i denna Twig-mall. Linje # 5 kör a
för
loop för varje menyalternativ och visar titeln på varje menyArtikel
i en orörd lista. Slingan går till alla nyckelvärden par avmeny
objektet är itererade och listade på fronten.Jag gick vidare och inkluderade
menu.twig
mall ibase.twig
mall på rad # 11.# Basmall: 'base.twig' # % block html_head_container% % include 'header.twig'% % endblock% % inkluderar "menu.twig"%% block content%% inkluderar "footer.twig"%FÖRLÅT! Inget innehåll hittades!
% endblock%