Nous comprenons maintenant que Twig et le plugin WordPress Timber peuvent aider les développeurs à écrire du code modulaire tout en développant des thèmes WordPress. Avec une telle approche modulaire, vous pouvez gérer séparément la logique et la couche de visualisation de votre application Web. Passons maintenant à des tâches un peu plus techniques: création de modèles Twig, conversion de HTML en fichiers Twig, et rendu de la logique ou des données avec des modèles Twig.
Tout d’abord, je vais installer Timber, un plugin WordPress qui aide à intégrer le moteur de création de modèles Twig avec WP. Alors faisons-le.
Une fois que Timber est installé, vous pouvez maintenant commencer à fractionner vos fichiers de modèle en Les données et vue des dossiers.
Avant de commencer à créer des modèles Twig, je suppose que vous avez une sorte de configuration WordPress locale. Pour ce tutoriel particulier, ma configuration est la suivante:
UpStatement a également construit un thème de démarrage du bois.
Commençons. Je souhaite afficher un message de bienvenue en haut de ma page d'accueil. Comment pourrais-je m'y prendre sans Twig? J'inclurais probablement le code HTML dans le fichier PHP et répercuterais le message de bienvenue, comme dans l'exemple de code ci-dessous. ma index.php
le fichier ressemble à quelque chose comme ça.
Maintenant, la page d’accueil de mon installation WordPress locale affiche un message de bienvenue tout en haut. Voici la capture d'écran.
Le problème avec cette approche est que nous mélangeons les données / la logique avec la vue. Plus ce fichier est complexe, plus il est difficile à maintenir, encore moins à comprendre. Par exemple, si vous ajoutez la boucle WordPress après ce code avec quelques arguments, puis filtrez et paginez ensuite. Ajoutez à cela, PHP dans HTML ne semble pas bon quand vous vous retrouvez avec un peu de la logique.
Pour le rendre plus modulaire, nous pouvons penser à notre contenu sur la page d’accueil sous forme de blocs ou de composants. Il peut y avoir deux versions complètes par défaut, à savoir les publications de The_Loop et la pagination. Puisque nous voulons maintenant ajouter un autre composant en haut, c'est-à-dire le message de bienvenue, créons un fichier Twig pour ce composant..
Ouvrez un nouveau fichier vierge dans l'éditeur et copiez-collez les lignes de code suivantes.
Bienvenue sur mon site web!
Créez un nouveau dossier à la racine de votre thème appelé vues et enregistrez ce fichier avec le .brindille
extension. Par exemple, j'ai enregistré le fichier sous bienvenue.twig
.
Le bois nous fournit quelques fonctions utiles, dont la fonction de rendu. Vous pouvez l'appeler comme ça:
Bois :: render ();
Cette fonction peut prendre jusqu'à quatre arguments. Étant donné que cela sort du cadre de cet article, vous pouvez en apprendre davantage à ce sujet dans la documentation Timber. Nous pouvons passer le nom de n'importe quel fichier Twig présent dans le vues dossier de votre thème à cette fonction.
Rendons le message de bienvenue dans le index.php
fichier.
Le bois rend la
bienvenue.twig
fichier, charge le code HTML et affiche la nouvelle couche de vue modifiée au niveau du système, comme suit:le
rendre()
fonction prendbienvenue.twig
comme argument, mais il lit automatiquement ce fichier tant que les modèles de brindille résident dans le dossier nommé vues.Si vous souhaitez utiliser un nom / chemin personnalisé pour le dossier, vous devez fournir le chemin de ce dossier. Par exemple, j'ai créé un dossier twig à la racine de mon thème et l'a ajouté à l'argument de la fonction de rendu..
L'ordre de chargement officiel
Timber examinera d'abord le thème enfant, puis le thème parent (comme dans la logique WordPress). L'ordre de chargement officiel est:
- Emplacements définis par l'utilisateur
- Répertoire d'appel de script PHP (mais pas de thème)
- Thème enfant
- Thème parent
- Répertoire d'appel de script PHP (y compris le thème)
L'élément 2 est inséré au-dessus des autres afin que si vous utilisez Timber dans un plugin, il utilise les fichiers twig du répertoire du plugin..
Donc, maintenant, le fichier index.php ne contient pas de HTML et rend un modèle Twig.
Maintenant envoyons des données dynamiques de
index.php
aubienvenue.twig
déposer et le rendre avec Timber.Envoi de données par le bois à des fichiers Twig
Pour envoyer des données du fichier PHP au fichier Twig, vous devez définir un tableau de contexte. La fonction de rendu utilise un tableau de données pour fournir aux modèles Twig un certain type de contexte. Appelons le tableau
$ contexte
, qui est un tableau associatif, c’est-à-dire qu’il utilise les paires clé-valeur.Ajoutons une paire clé-valeur qui serait un message de bienvenue dynamique, que notre fichier PHP enverrait au fichier Twig.
Fichier de données
ma
index.php
le fichier ressemble à ceci maintenant.Donc, à l'intérieur du
index.php
fichier, j'ai défini un vide$ contexte
tableau à la ligne # 8. Puis à la ligne 11, j'ai créé une variable$ var
avec la valeur'Message dynamique'
. À la ligne 14, j'ai créé une cléle message
qui est égal à$ var
.A la ligne 17, j’ai appelé la fonction de rendu avec la commande
bienvenue.twig
fichier, mais cette fois, il faut un argument supplémentaire, c’est-à-dire le$ contexte
tableau. Ce nouvel argument contient en fait les données que Timber enverra du fichier PHP au fichier Twig.Nous avons donc défini le tableau de contexte et ajouté un message dynamique (vous pouvez afficher un message différent à différents utilisateurs en lui ajoutant une sorte de logique, comme l’affichage du prénom de l’utilisateur actuel)..
Fichier de modèle
Maintenant, nous devons utiliser ces données, c'est-à-dire.
le message
, dans le fichier Twig. Nous pouvons reproduire une variable dans notre modèle Twig en y plaçant des doubles accolades. Par exemple, pour echo $ var dans un fichier twig, nous pouvons écrirevar
. C'est exactement ce que j'ai fait.le message
La valeur de
le message
sera imprimé à l'intérieur des balises h2. Je sais, c'est aussi simple que cela, et le code a l'air assez propre.C'est tout! Enregistrez le code et affichez le message de bienvenue dynamique sur le serveur frontal. Voici la dernière capture d'écran.
Conclusion
Pour résumer, vous pouvez maintenant utiliser le fichier PHP pour coder la logique et fournir des données à un modèle Twig contenant du code HTML et affichant les variables ou fonctions Twig à l'intérieur des doubles accolades..
Cette approche modulaire peut conduire à un fichier de modèle séparé pour chaque composant de votre thème WordPress. Pensez à avoir un composant message.twig que vous pouvez utiliser n'importe où dans le thème pour afficher le message de votre choix, autant de fois que vous le souhaitez..
C'était une implémentation de base de Twig with Timber. Cependant, dans les deux prochains articles, j'écrirai au sujet de Timber WordPress Cheatsheet, de la gestion des images avec Timber et de la création de menus sans utiliser la fonction Crazy Walker..
Si vous avez des questions, postez-les dans les commentaires ci-dessous ou contactez-nous sur Twitter. Vous pouvez également consulter mon code de thème sur ce dépôt GitHub.