J'écris un plugin et j'essaie de comprendre comment ajouter des données à la fin d'un article en fonction de méta-informations personnalisées.
Donc j'ai fait ça jusqu'à présent:
add_filter('the_content', 'AppendMeta');
Et voici la fonction "AppendMeta"
AppendMeta($content) {
echo $content; // Echo out post content
$PersonName = get_post_meta($post->ID, 'PersonName', true);
echo 'Person: ' . $PersonName;
}
Ce code fonctionne si je remplace $ post-> ID par l'id de la publication, mais j'ai besoin que cela fonctionne en fonction de la publication actuellement parcourue par l'utilisateur. Comment pourrais-je passer l'identifiant de la publication en tant que paramètre? $ post-> ID ne fonctionne pas dans ce scénario et je ne peux pas savoir pourquoi.
Peu importe, j'ai découvert que je peux utiliser get_the_ID();
.
Cette fonction renverra l'identifiant de publication à l'intérieur du filtre the_content
. La fonction déclare simplement l'objet global $post
et renvoie son ID.
add_filter('the_content', 'wpse51205_content')
wpse51205_content($content) {
echo $content; // Echo out post content
$PersonName = get_post_meta(get_the_ID(), 'PersonName', true);
echo 'Person: ' . $PersonName;
}
Si vous ne souhaitez pas utiliser get_the_ID()
, vous devez simplement déclarer l'objet $post
global avant de l'utiliser:
add_filter('the_content', 'wpse51205_content')
wpse51205_content($content) {
global $post;
echo $content; // Echo out post content
$PersonName = get_post_meta($post->ID), 'PersonName', true);
echo 'Person: ' . $PersonName;
}
the_ID()
est seulement censé être utilisé à l'intérieur de la boucle, sinon vous ne pouvez pas compter dessus. Mieux vaut utiliser l'objet $GLOBALS['post']
dans votre appel de fonction.