get_post_meta() #1 : La fonction de la semaine n°9
La loi des séries
Je vais faire une série d’article sur get_post_meta()
, celui ci étant le premier.
C’est quoi une meta valeur ?
C’est une donnée additionnelle qui est liée à un post, elle peut être tout ce qui est imaginable.
A quoi ça sert ?
Cette fonction permet de récupérer des meta données d’un article ou tout autre type de contenu (CPT). Son utilisation est simple :
$meta_values
va contenir la ou les meta valeurs.
$post_id
est l’identifiant (un entier donc) de l’article duquel vous désirez obtenir les données.
$key
est une chaà®ne de caractère qui est la clé de la meta valeur à récupérer.
$single
est un booléan valant par défaut false qui indique si la valeur a récupérer est « seule » ou « accompagnée », c’est à dire si la valeur peut en fait être un tableau puisqu’il est possible d’ajouter plusieurs valeurs avec le même clé. Il n’y a pas de règle, c’est selon les besoins. Si vous savez que la valeur est unique, passez donc cela à vrai.
Utilisation simple
Une petite démo ?
Tous les articles contiennent cette meta valeur qui contient l’identifiant du dernier auteur l’ayant modifié.
La question du jour
Julien Maury m’a posé une question tout à l’heure :
Voici ma réponse :
Non, la clé ne peut pas être un tableau, nous ne pouvez donc pas demander à WordPress quelques clés. Vous pourriez donc avoir un boucle for à faire afin d’aller chercher une par une les clés, c’est possible et ça reste optimisé car 1 ou 1000 appels à get_post_meta() ne prennent pas plus de requêtes, seul le premier appel fait 1 requête.
Mais alors comment ça marche ?
Et bien en fait le get_post_meta() va vérifier si vous en êtes au premier appel ou non, si oui, alors WordPress va faire ça :
Et il nous mets à en cache mémoire (pas besoin de plugin de cache comme WP-Rocket pour ça), les prochains appels iront taper direct en mémoire.
KEWAAA ?
Oui, un appel à get_post_meta()
juste avec l’ID de l’article, c’est possible ! Et donc ça revoie TOUTES les clés de l’article. Non, ce n’est pas plus lourd que de préciser une clé, souvenez-vous WP va de toute façon tout charger et si vous avez spécifié une clé ne vous renverra que celle-ci.
Utilisation avancée
Pour réponse à la question de Julien avec du code, voilà ce qu’on peut faire très proprement :
Grà¢ce à ça, je ne récupère que les valeurs des clés demandées sans problèmes !
Réagir à cet article