Ormai hai letto i concetti di base dell'utilizzo di Twig through Timber, mentre costruisci un tema WordPress modulare. Abbiamo anche studiato la nidificazione dei blocchi e l'ereditarietà multipla con Twig, basata sul principio DRY. Oggi, esploreremo come visualizzare immagini di allegati, menu WordPress e utenti in un tema con Twig tramite il plugin Timber.
Le immagini sono uno degli elementi vitali per qualsiasi tema WordPress. Nelle normali pratiche di codifica di WordPress, le immagini sono integrate con PHP all'interno dei normali tag immagine HTML. Tuttavia, Timber offre un modo abbastanza completo di gestire il img
(immagine) tag che è modulare e pulito.
Ci sono immagini allegate al campo delle miniature del post. Questi possono essere facilmente recuperati tramite i file Twig di post.thumbnail
. È così facile!
Iniziamo con un esempio pratico. Nostro single.php
il file assomiglia a questo:
Ecco, ho usato il
TimberPost ()
funzione per ragioni abbastanza ovvie. Questo è usato in tutto il legname per rappresentare i post recuperati da WordPress, rendendoli disponibili ai modelli Twig.Poiché l'immagine in primo piano è allegata ai dati del post, ora dobbiamo recuperarla sul front-end. Quindi il file Twig per questo,
single.twig
, sarà simile a questo:# Sinlge Template: 'single.twig' # % estende "base.twig"% % block content%% endblock%Sulla linea # 9 il codice
post.thumbnail.src
recupera l'immagine in primo piano (miniatura) del post e la visualizza in questo modo:È possibile utilizzare questa sintassi del codice per recuperare tutte le immagini di anteprima desiderate.
C'è ancora molto di più su cui puoi sperimentare queste immagini quando usi Timber. Ad esempio, puoi anche ridimensionarli tramite:
Usando il
ridimensionare ()
, funzione, è possibile aggiungere nuove dimensioni all'immagine in cui si trova il primo parametrolarghezza
e il secondo èaltezza
. Se si desidera ridimensionare l'immagine in modo proporzionale, omettere ilaltezza
attributo. Ora la sintassi diventa:Il front-end mostra la stessa immagine in questo modo:
Se vuoi saperne di più, prova il ricettario immagini.
utilizzando
TimberImage ()
Considera uno scenario in cui uno sviluppatore desidera recuperare le immagini tramite l'ID immagine o desidera visualizzare un'immagine esterna tramite URL, ecc. Per un approccio così esteso, Timber offre una classe,
TimberImage ()
, per rappresentare le immagini che vengono recuperate da WordPress.uso
Facciamo un esempio per il nostro
single.php
file, che assomiglia a questo ora:Questa volta, sto usando il
TimberImage ()
classe che prende l'ID dell'immagine8
come il suo parametro. Il resto della routine di codifica è lo stesso. Recuperiamo questa immagine tramite il file Twigsingle.twig
.Il valore memorizzato all'interno
$ contesto
elemento custom_img, ad es.custom_img
, recupererà l'immagine tramite il suo ID per visualizzare sul front-end in questo modo:Per recuperare l'immagine tramite un URL esterno sostituisci puoi seguire questa sintassi.
Questa volta, invece dell'ID immagine, c'è un URL immagine esterno che viene visualizzato sul front-end in questo modo:
Per esplorare alcune funzionalità aggiuntive di questa funzione, è possibile consultare la documentazione.
Menu in legno
Ora, come andresti sul rendering di un menu WordPress con i modelli Twig? Questa è una cosa complicata da fare. Ma aspetta! Il legname ti fornisce il suo
TimberMenu ()
classe, che può aiutarti a rendere i menu WordPress all'interno dei file Twig come un ciclo completo. Diamo un'occhiata a questo.uso
L'intero concetto di recupero degli elementi del menu ruota attorno al oggetto del menu. Ci sono due modi per definire il suo contesto. Il primo è rendere l'oggetto menu disponibile su ogni pagina aggiungendolo alla funzione globale get_context (), come ho fatto nel
functions.php
file. In secondo luogo, puoi aggiungere un particolare menu con il suo ID per un particolare modello PHP.Indipendentemente dai due metodi, una volta che il menu diventa disponibile per il legname
$ contesto
array, è possibile recuperare tutte le voci di menu da esso. Ma preferisco definirlo a livello globale. Quindi vai alfunctions.php
file e incolla il seguente codice:Quindi, qui ho definito una chiamata di funzione personalizzata
add_to_context
. All'interno di questa funzione ci sono alcuni dati che voglio essere disponibili in ogni modello PHP tramiteGET_CONTEXT ()
funzione. Alla riga # 13 puoi trovare un'istanza diTimberMenu ()
essere passati contro il menu degli elementi nel$ data
schieramento.Ciò renderà disponibile un menu WordPress standard al modello Twig come un oggetto che possiamo scorrere. Il
TimberMenu ()
la funzione può assumere parametri come il menu slug o l'ID.Creiamo un modello Twig chiamato
menu.twig
file.# Menu Template: 'menu.twig' #Il codice precedente esegue un ciclo all'interno di questo modello Twig. La linea n. 5 esegue a
per
loop per ogni voce di menu e visualizza il titolo di ogni menuarticolo
in una lista non ordinata. Il ciclo si estende fino a tutte le coppie chiave-valore dimenu
oggetto sono iterati e elencati sul front-end.Sono andato avanti e incluso il
menu.twig
modello nelbase.twig
template on line # 11.# Base Template: 'base.twig' # % block html_head_container% % include 'header.twig'% % endblock% % include "menu.twig"%% block content%% include "footer.twig"%SPIACENTE! Nessun contenuto trovato!
% endblock%