J'ai installé le thème Twenty Seventeen et un thème pour enfants. Maintenant, je veux ajouter le code suivant à functions.php
pour ajouter des métadonnées à la balise <head>
à l'aide de l'action wp_head
:
if ( is_single() ) echo get_post_meta($post->ID, "meta-head", true); ?>
J'ai essayé ça, mais ça n'a pas marché:
add_action ('wp_head','hook_inHeader');
function hook_inHeader() {
if ( is_single() ) {
echo get_post_meta($post->ID, "meta-head", true);
}
}
La raison pour laquelle le code posté ne fonctionne pas est que $post
ne fait pas référence à la variable globale $post
, ce qui est l'objectif ici.
Utiliser get_the_ID()
est un bon moyen d’accéder à l’ID associé à la publication en cours. C'est ce que je suggérerais de faire, mais il y a aussi d'autres moyens:
add_action ( 'wp_head', 'hook_inHeader' );
function hook_inHeader() {
if ( is_single() ) {
// Get the post id using the get_the_ID(); function:
echo get_post_meta( get_the_ID(), 'meta-head', true );
/* Or, globalize $post so that we're accessing the global $post variable: */
//global $post;
//echo get_post_meta( $post->ID, 'meta-head', true );
/* Or, access the global $post variable directly: */
// echo get_post_meta( $GLOBALS['post']->ID, 'meta-head', true );
}
}