Aggiungere add_action a wp_head tramite functions.php

19 dic 2016, 21:51:48
Visualizzazioni: 37.9K
Voti: 11

Ho installato il tema Twenty Seventeen e un tema child. Ora voglio aggiungere il seguente codice al file functions.php per inserire meta data nel tag <head> utilizzando l'azione wp_head:

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

Ho provato questo, ma non ha funzionato:

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

Abilita la modalità di debug e scopri cosa non va con $post.

fuxia fuxia
19 dic 2016 22:07:18
Tutte le risposte alla domanda 1
0
11

Il motivo per cui il codice pubblicato non funziona è che $post non fa riferimento alla variabile globale $post, che è l'obiettivo qui.

Usare get_the_ID() è un buon modo per accedere all'ID associato al post corrente. Questo è il metodo che suggerirei di usare, ma ci sono anche altri modi:

add_action ( 'wp_head', 'hook_inHeader' );
function hook_inHeader() {
    if ( is_single() ) {
        // Ottieni l'ID del post usando la funzione get_the_ID():
        echo get_post_meta( get_the_ID(), 'meta-head', true );

        /* Oppure, globalizza $post per accedere alla variabile globale $post: */
        //global $post;
        //echo get_post_meta( $post->ID, 'meta-head', true );

        /* Oppure, accedi direttamente alla variabile globale $post: */
        // echo get_post_meta( $GLOBALS['post']->ID, 'meta-head', true );
    }
}
19 dic 2016 23:31:55