A présent, vous avez découvert les concepts de base de l'utilisation de Twig via Timber, tout en construisant un thème WordPress modulaire. Nous avons également étudié l'imbrication de blocs et l'héritage multiple avec Twig, sur la base du principe DRY. Aujourd'hui, nous allons explorer comment afficher des images de pièces jointes, des menus WordPress et des utilisateurs dans un thème avec Twig via le plugin Timber..
Les images sont l’un des éléments essentiels de tout thème WordPress. Dans les pratiques habituelles de codage WordPress, les images sont intégrées à PHP dans les balises HTML normales. Timber offre cependant un moyen assez complet de gérer le img
balise (image) modulaire et propre.
Des images sont attachées au champ de vignettes de la publication. Ceux-ci peuvent être facilement récupérés via les fichiers Twig en post.thumbnail
. C'est aussi simple que cela!
Commençons par un exemple pratique. Notre single.php
Le fichier ressemble à ceci:
Ici, j'ai utilisé le
TimberPost ()
fonctionner pour des raisons assez évidentes. Ceci est utilisé dans Timber pour représenter les publications extraites de WordPress, les rendant ainsi disponibles pour les modèles Twig..Comme l'image sélectionnée est attachée aux données de publication, nous devons maintenant la récupérer au début. Donc, le fichier Twig pour cela,
single.twig
, ressemblera à ceci:# Modèle Sinlge: 'single.twig' # % extend "base.twig"% % block content%% endblock%Sur la ligne 9 le code
post.thumbnail.src
récupère l'image sélectionnée de la publication (miniature) et l'affiche comme suit:Vous pouvez utiliser cette syntaxe de code pour récupérer autant d'images miniatures que vous souhaitez..
Il y a encore beaucoup plus que vous pouvez expérimenter avec ces images lorsque vous utilisez Timber. Par exemple, vous pouvez aussi les redimensionner via:
En utilisant le
redimensionner ()
, fonction, vous pouvez ajouter de nouvelles dimensions à l’image où le premier paramètre estlargeur
et le second estla taille
. Si vous souhaitez redimensionner l’image proportionnellement, omettez le paramètrela taille
attribut. Maintenant la syntaxe devient:Le front-end affiche la même image comme ceci:
Si vous voulez explorer davantage, essayez le livre de recettes image..
En utilisant
TimberImage ()
Prenons un scénario dans lequel un développeur souhaite récupérer des images via l'ID d'image, ou souhaite afficher une image externe via une URL, etc. Pour une telle approche étendue, Timber propose une classe.,
TimberImage ()
, pour représenter les images extraites de WordPress.Usage
Prenons un exemple pour notre
single.php
fichier, qui ressemble à ceci maintenant:Cette fois, j'utilise le
TimberImage ()
classe qui prend l'identifiant de l'image8
comme paramètre. Le reste de la routine de codage est identique. Récupérons cette image via le fichier Twigsingle.twig
.La valeur stockée à l'intérieur
$ contexte
élément custom_img, c'est-à-dire.custom_img
, récupérera l'image via son identifiant pour l'afficher en façade comme ceci:Pour récupérer l'image via une URL externe, vous pouvez suivre cette syntaxe.
Cette fois, à la place de l'ID d'image, il existe une URL d'image externe qui est affichée sur le serveur, comme suit:
Pour explorer quelques fonctionnalités supplémentaires de cette fonction, vous pouvez consulter la documentation.
Menus en bois
Maintenant, comment feriez-vous pour rendre un menu WordPress avec des modèles Twig? C'est une chose difficile à faire. Mais attendez! Le bois vous fournit sa
TimberMenu ()
classe, qui peut vous aider à rendre les menus WordPress à l’intérieur des fichiers Twig sous forme de boucle complète. Jetons un coup d'oeil.Usage
Le concept entier de récupération des éléments de menu tourne autour de la objet de menu. Il y a deux façons de définir son contexte. La première consiste à rendre l'objet de menu disponible sur chaque page en l'ajoutant à la fonction globale get_context (), comme je l'ai fait dans le cas contraire.
functions.php
fichier. Deuxièmement, vous pouvez ajouter un menu particulier par son ID pour un modèle PHP particulier.Indépendamment des deux méthodes, une fois le menu disponible pour le bois
$ contexte
tableau, vous pouvez récupérer tous les éléments de menu à partir de celui-ci. Mais je préfère le définir globalement. Alors allez aufunctions.php
Fichier et collez le code suivant:Donc, ici, j'ai défini un appel de fonction personnalisé
add_to_context
. Cette fonction contient des données que je veux être disponibles sur chaque modèle PHP via leget_context ()
une fonction. Sur la ligne 13, vous pouvez trouver une instance deTimberMenu ()
être passé contre le menu d'élément dans le$ data
tableau.Cela rendra un menu WordPress standard disponible pour le modèle Twig en tant qu’objet que nous pouvons parcourir en boucle. le
TimberMenu ()
la fonction peut prendre des paramètres comme le slug ou l'ID du menu.Créons un modèle Twig appelé le
menu.twig
fichier.# Modèle de menu: 'menu.twig' #Le code ci-dessus exécute une boucle dans ce modèle Twig. La ligne 5 exécute un
pour
boucle pour chaque élément de menu et affiche le titre de chaque menuarticle
dans une liste non ordonnée. La boucle s’exécute jusqu’à toutes les paires clé-valeur dumenu
les objets sont itérés et listés sur le front-end.Je suis allé de l'avant et inclus le
menu.twig
modèle dans lebase.twig
modèle sur la ligne 11.# Modèle de base: 'base.twig' # % block html_head_container% % include 'header.twig'% % endblock% % include "menu.twig"%% block content%% include "footer.twig"%PARDON! Aucun contenu trouvé!
% endblock%