Maîtriser les méta-données WordPress comprendre et utiliser des tableaux

Dans la première partie de cette série, nous avons présenté les métadonnées de WordPress, son extraction et les différents types de données (tels que les objets ou les tableaux) dans lesquels elles peuvent être renvoyées. Il est maintenant temps de connaître les différents types de tableaux.

Lorsque vous écrivez un tableau manuellement, vous savez quelle est sa structure et quel est le nom de chaque index. Mais lorsque vous construisez des tableaux en interrogeant une base de données, vous devrez effectuer un travail de détection pour déterminer la structure des données renvoyées et les noms des index..

Types de tableaux

Avant de vous lancer dans les différents types de tableaux disponibles, il est important de comprendre qu'un tableau PHP est une variable contenant plusieurs données..

Tableaux associatifs et indexés

L'exemple le plus simple d'un tableau est une liste de valeurs séparées par des virgules, à l'intérieur de la fonction array (), comme ça:

 $ heros = array ('Luke', 'Leia', 'Han');

PHP indexe automatiquement les tableaux créés dans des listes séparées par des virgules, en attribuant à chaque élément un index numérique, à partir de zéro. Cela signifie que nous pourrions récupérer la valeur du deuxième élément 'Leia' du $ héros tableau en spécifiant l'index 1.

Voici à quoi cela ressemblerait:

 $ heroes = array ('Luke', 'Leia', 'Han'); echo $ heroes [1];

Pour un exemple pratique avec WordPress, jetez un œil à la fonction wp_get_attachment_image_src () qui renvoie un tableau indexé d'informations sur une image..

Nous pouvons obtenir l'URL, la largeur et la hauteur d'une image à l'aide des index numériques du tableau renvoyé par cette fonction (notez que le '7' transmis à la fonction fait référence à l'ID de la pièce jointe et, dans ce cas, il est arbitraire aux fins de notre exemple):

 $ img = wp_get_attachment_image_src (7); écho ' ';

Bien sûr, garder la trace des numéros d'index dans les tableaux peut prêter à confusion, c'est pourquoi PHP nous permet de créer des tableaux associatifs. Revenir à notre $ héros Par exemple, nous pourrions donner un nom à chaque élément de notre tableau:

 $ heroes = array ('unreal_hero' => 'Luke', 'badass_princess' => 'Leia', 'lovable_rouge' => 'Han',);

Nous appelons ces noms clés. Dans ce tableau, nous dirions que la clé 'unrcept_hero' a la valeur 'Luke'. Nous pouvons obtenir la valeur de cette clé en la plaçant entre parenthèses à côté de la variable. Par exemple:

 echo $ hereos ['unrcept_hero'];

Tableaux multidimensionnels

Jusqu'à présent, nous avons examiné les tableaux qui sont essentiellement une liste d'éléments, mais les tableaux peuvent également être composés d'autres tableaux. Nous appelons ces tableaux multidimensionnels. Lors de la création d'un tableau multidimensionnel, nous avons essentiellement une liste de listes, où chaque index ou clé de notre tableau est défini par un autre tableau..

Par exemple:

 $ 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 '=>' Rouge aimable ',),);

Ce type de tableau est très utile car il nous permet de le parcourir en boucle, en écrivant notre balisage une fois et en laissant PHP le parcourir autant de fois que possible..

Outils pour le travail de détective

Comme je l'ai dit au début de cet article, le travail avec des métadonnées peut souvent impliquer un travail de détective pour découvrir la structure du tableau. Comme tout détective, vous devez vous assurer que vous avez les bons outils pour le poste..

Les développeurs amateurs modifient leurs fichiers de thème pour afficher temporairement les valeurs des tableaux. Mais si vous voulez travailler rapidement et efficacement, vous le ferez de manière professionnelle - avec la console de débogage.

Les développeurs amateurs modifient leurs fichiers de thème pour afficher temporairement les valeurs des tableaux. Mais si vous voulez travailler rapidement et efficacement, vous le ferez de manière professionnelle - avec la console de débogage.

Qu'est-ce que la console de débogage?

La console de débogage est l’un des nombreux add-ons du plugin Bar de débogage dont aucun développeur WordPress ne devrait se passer. Si la barre de débogage n'est pas déjà installée dans votre environnement de développement, vous devez le faire dès que possible..

Une fois que vous avez installé ces deux plugins, vous pourrez accéder à une console à partir de la barre d’administrateur, où vous pourrez exécuter du code PHP. Maintenant, au lieu de modifier un fichier de thème, enregistrer et actualiser vous pouvez simplement expérimenter avec du code directement dans le navigateur..

Il suffit de cliquer sur "Exécuter" et de voir les résultats en bas de l'écran. La meilleure partie est que toutes les erreurs que vous générez seront affichées dans la zone de résultats, et non sur le front-end de vos sites. Des erreurs fatales endommagent la console de débogage, pas votre site.

En passant, je viens juste de vous montrer tout ce que peut faire la barre de débogage. En outre, la barre de débogage et la console de débogage, ainsi que de nombreux autres utilitaires intéressants, sont inclus dans le plug-in de développement, que je recommande vivement. Au fur et à mesure que vous apprendrez à utiliser les métadonnées, le plugin Debug Bar Post Meta vous semblera également très utile..

var_dump vs print_r

Maintenant que vous avez un endroit pour faire vos tests, comment explorez-vous l'intérieur d'un tableau? Pour ce travail, PHP nous donne deux fonctions utilitaires que nous n’utiliserions jamais pour créer une sortie frontale, mais qui sont parfaites pour le travail de diagnostic.-var_dump () et print_r ().

Ces deux fonctions prennent une variable contenant un tableau en entrée et en sortent le contenu pour que nous puissions l'examiner.. var_dump () contient plus d'informations telles que le type de données (chaîne, booléen, entier, etc.) et la longueur des données, tandis que print_r () est conçu pour être plus lisible par l'homme et ignore ces informations supplémentaires.

Utilisation de var_dump pour rechercher un index ou une clé

Voici une capture d'écran d'un var_dump des métadonnées d'un message. Cela montre comment j'ai creusé jusqu'à un seul champ. Mon objectif était d'obtenir la valeur du champ de titre méta créé par le plugin WordPress SEO by Yoast..

Comme vous pouvez le voir sur var_dump, que j’ai généré à partir de tous les champs de méta de la publication n ° 1 avec get_post_meta (1); Je travaillais avec un tableau associatif, multidimensionnel, qui contenait un tableau indexé avec un seul index. En examinant var_dump, j'ai découvert que la clé dont j'avais besoin était '_yoast_wpseo_title' et que les informations dont j'avais besoin étaient dans le premier index. Pour accéder à cela, j'ai mis la clé '_yoast_wpseo_title' dans sa propre variable, puis j'ai répété le premier index comme ceci:

 $ meta = get_post_meta (1); $ seo_title = $ meta ['_ yoast_wpseo_title']; écho '
SEO TITRE: '. $ seo_title [0]. '
';

C’est un bon exemple pour illustrer la stratégie de recherche de la clé nécessaire, mais ce n’est pas le moyen le plus efficace d’obtenir les informations une fois que vous en connaissez la clé. Donc, après avoir fait le travail de détective pour trouver la bonne clé, je spécifierais la clé directement dans l’appel à get_post_meta (). Lorsque nous avons besoin d’une seule clé, vous pouvez la spécifier directement dans le deuxième argument de get_post_meta ().

Il est important de garder à l'esprit que get_post_meta (1, '_yoast_wpseo_title'); ne renverra pas la valeur dont nous avons besoin, mais plutôt un tableau. En ajoutant true pour le troisième argument 'single', nous pouvons obtenir uniquement le premier index, ce dont nous avons besoin.

Donc, pour faire directement écho au titre de référencement, dans une seule ligne, nous devons procéder comme suit:

 get_post_meta (1, '_yoast_wpseo_title', vrai);

Utiliser get_user_meta ()

Jusqu'à présent dans cette série, je vous ai montré comment travailler avec le wp_postmeta table, qui contient tous les champs personnalisés ajoutés à un type de publication.

Les utilisateurs peuvent également avoir des champs personnalisés. Les méta-données utilisateur, les champs supplémentaires ajoutés aux profils utilisateur fonctionnent de la même manière que les méta-données postérieures, mais sont stockés dans la base de données. wp_usermeta table. Lorsque vous travaillez avec les métadonnées de l'utilisateur, au lieu de get_post_meta (), nous utilisons get_user_meta ().

Ces deux fonctions fonctionnent de manière identique, elles obtiennent simplement leurs données de deux tables différentes dans la base de données..

Voici un exemple d'utilisation get_user_meta () pour afficher une image personnalisée sous forme de lien vers les publications d'un auteur:

 $ utilisateurs = tableau (55, 89, 144, 233, 377); foreach ($ utilisateurs en tant que $ utilisateur) $ link = get_author_posts_url ($ utilisateur); $ img = get_user_meta ($ user, 'link_img',; echo '';  // fin de chaque boucle

Suivant…

Dans les deux parties de cette série, nous avons examiné les différents types de métadonnées, leur mode de stockage et leur récupération. En outre, nous avons examiné les deux types de tableaux proposés par PHP et leur correspondance avec les métadonnées associées aux publications et aux utilisateurs..

Dans la prochaine partie de la série, nous verrons exactement comment nous pouvons effectuer une itération sur chaque type de données afin de disposer de la puissance et de la souplesse nécessaires pour personnaliser la sortie de nos modèles..