Añadir add_action a wp_head a través de functions.php

19 dic 2016, 21:51:48
Vistas: 37.9K
Votos: 11

Instalé el tema Twenty Seventeen y un tema hijo. Ahora quiero agregar el siguiente código a functions.php para añadir metadatos a la etiqueta <head> usando la acción wp_head:

if ( is_single() ) echo get_post_meta($post->ID, "meta-head", true); ?>

Intenté esto, pero no funcionó:

add_action ('wp_head','hook_inHeader');
function hook_inHeader() {
    if ( is_single() ) {
        echo get_post_meta($post->ID, "meta-head", true);
   }
}
1
Comentarios

Habilita el modo de depuración y descubre qué está mal con $post.

fuxia fuxia
19 dic 2016 22:07:18
Todas las respuestas a la pregunta 1
0
11

La razón por la que el código publicado no funciona es que $post no está haciendo referencia a la variable global $post, que es el objetivo aquí.

Usar get_the_ID() es una buena manera de acceder al ID asociado con la publicación actual. Así es como sugiero hacerlo, pero también hay otras formas:

add_action ( 'wp_head', 'hook_inHeader' );
function hook_inHeader() {
    if ( is_single() ) {
        // Obtener el ID de la publicación usando la función get_the_ID():
        echo get_post_meta( get_the_ID(), 'meta-head', true );

        /* O bien, globalizar $post para que accedamos a la variable global $post: */
        //global $post;
        //echo get_post_meta( $post->ID, 'meta-head', true );

        /* O bien, acceder directamente a la variable global $post: */
        // echo get_post_meta( $GLOBALS['post']->ID, 'meta-head', true );
    }
}
19 dic 2016 23:31:55