Dans les deux premières parties de cette série, nous avons décrit les métadonnées dans WordPress et comment utiliser les tableaux généralement renvoyés. Maintenant que vous avez appris à faire le travail de détective nécessaire pour trouver la structure d'un tableau, il est temps d'apprendre à utiliser des boucles pour automatiser le processus de sortie d'un tableau..
Une fois que vous aurez appris cette compétence importante, vous ne serez plus jamais obligé d'écrire du balisage HTML répétitif..
La boucle WordPress standard est un tandis que
loop, comme dans "tant qu'il y a des éléments à boucler, continuez la boucle". Souvent, lorsque vous travaillez avec des métadonnées, il est plus facile de travailler avec un pour chaque
boucle.
Ces boucles nous permettent d’écrire notre PHP comme si nous travaillions avec un seul tableau, puis, pour chaque élément, d’extraire chaque élément d’un tableau multidimensionnel à travers la même boucle..
Plus tôt, nous avons examiné ce tableau:
$ heroes => array ('Luke' => array ('full_name' => 'Luke Skywalker', 'home_planet' => 'Tatooine', 'trope' => 'Héros improbable',), 'Leia' => array ('full-name' => 'Leia Organa', 'home_planet' => 'Alderaan', 'trope' => 'Badass Princess',), 'Han' => array ('full_name' => 'Han Solo' , 'home_planet' => 'Corell', 'trope' => 'Lovable Rouge',),);
Si nous voulions rendre ce tableau lisible, avec un balisage approprié, nous créerions un pour chaque
boucle.
Nous avons l'habitude d'installer pour chaque
boucles avec des formes plurielles et singulières de la variable, c.-à-d.., foreach ($ héros comme $ héros)
et à partir de là, nous pouvons utiliser la variable singulière pour représenter chaque élément du tableau.
Nous pouvons alors traiter notre tableau multi-dimensionnel comme un seul tableau.
$ heroes => array ('Luke' => array ('full_name' => 'Luke Skywalker', 'home_planet' => 'Tatooine', 'trope' => 'Héros improbable',), 'Leia' => array ('full-name' => 'Leia Organa', 'home_planet' => 'Alderaan', 'trope' => 'Badass Princess',), 'Han' => array ('full_name' => 'Han Solo' , 'home_planet' => 'Corell', 'trope' => 'Lovable Rouge',),); écho '
Ceci est un exemple abstrait, mais je suis sûr que vous pouvez voir le pouvoir. Au lieu de réécrire (et d'avoir à mettre à jour) le même balisage trois fois, vous ne l'écrivez qu'une fois et laissez PHP le parcourir en boucle trois fois..
Ces six simples lignes de code peuvent tout aussi bien gérer cinquante articles que cinq, ce qui nous montre la puissance des boucles foreach pour écrire du code évolutif et facile à gérer..
Dans cet exemple, nous prenons un tableau d'identifiants de publication et foreach post renvoie le nom d'un champ. youtube_name
comme un lien qui est défini dans le youtube_link
champ. Ces six simples lignes de code peuvent tout aussi bien gérer cinquante messages que cinq, nous montrant la puissance de pour chaque
boucles pour écrire du code facile à gérer et évolutif.
$ posts = array (5, 8, 13, 21, 34); foreach ($ posts en tant que $ post) $ link = get_post_meta ($ post, 'youtube_link', 'single'); $ name = get_post_meta ($ post, 'nom_youtube', 'single'); echo ''. $ name. ''; // fin de chaque boucle
Jusqu'à présent, je spécifiais manuellement les identifiants de publication, mais nous pouvons définir l'identifiant dans la boucle principale de WordPress. get_post_meta ()
manuellement avec get_the_ID ()
. Donc, en utilisant les mêmes champs personnalisés que nous avons utilisés dans le dernier exemple, mais en les affichant dans le cadre de la boucle principale, si nous voulions ajouter la vidéo youtube sous le contenu du message, nous pourrions simplement ajouter, après, le contenu();
quelque chose comme ça:
$ link = get_post_meta (get_the_ID (), 'youtube_link', 'single'); $ name = get_post_meta (get_the_ID (), 'youttube_name', 'single'); écho '' . $ name. '';
tandis que
et pour chaque
BoucleSouvent, nous aurons un seul champ personnalisé contenant un tableau de données sérialisées pour des informations connexes. Par exemple, un champ peut contenir le titre, le type MIME, l’URL et la description d’une vidéo..
Le stockage en série est particulièrement utile lorsque plusieurs éléments peuvent être ajoutés à un champ. Travailler avec ces heures de champs peut être délicat dans les principales boucles WordPress. Le moyen le plus simple de les gérer consiste à insérer une boucle secondaire dans votre boucle principale..
Dans cet exemple, j’ai ajouté à une boucle de publication WordPress standard, qui est une tandis que
boucle, une deuxième boucle, qui parcourt chaque champ vidéo pour créer un lecteur vidéo HTML5, un pour chaque
vidéo.
Peu importe s'il y a une vidéo ou dix. Ces quelques lignes de code simples créeront un lecteur pour chacun.
if (have_posts () while (have_posts ()) the_post (); the_content (); $ videos = get_post_meta (get_the_ID (), 'videos', false); foreach ($ videos en tant que $ video) ?>Presque là
À travers cette série, nous avons couvert jusqu’à présent les métadonnées dans WordPress et appliqué ces connaissances pour en savoir plus sur les tableaux et les boucles PHP. Nous avons également examiné des exemples pratiques d'utilisation de ces données, ou des tableaux de données dans la boucle..
C'est la première étape pour apprendre à utiliser WordPress en tant que système de gestion de contenu. La prochaine étape consiste à apprendre à interroger la base de données par des méta-champs, ce que nous couvrirons la prochaine fois..