add action wp_head non funziona
Sto cercando di aggiungere del codice nell'head (nello specifico un blocco di script di tracking) tramite un plugin che sto sviluppando.
Il plugin ha un'interfaccia dove l'utente inserisce alcuni dettagli che vengono poi aggiunti alla tabella delle opzioni. Questa parte funziona perfettamente finora. Ma poi voglio scrivere un'istruzione condizionale che, se c'è un'opzione attiva, aggiunga lo script nell'head. In pratica ho tutto questo nel file principale del plugin e appare così:
if(get_option( 'MyOptionName' )){
function testingone(){ ?>
<script>var Script = VaQui; </script>
<?php ;}
add_action('wp_head','testingone');
}
Ho provato a inserire questo codice all'interno del blocco che recupera i dati e li aggiunge alle opzioni, ma non ha funzionato. Quindi ho deciso di farlo in questo modo, dove controlla se esiste un'opzione nella tabella, ma anche questo non inietta nulla nell'head. In alcuni posti ho visto persone mettere l'add_action sopra la funzione, ma nel codex viene mostrato un esempio dove è posto sotto. In ogni caso ho provato entrambi i modi e ho fallito.
Qualcuno riesce a vedere dove sta l'errore?
Grazie

Sposta il add_action()
fuori dalla funzione e metti il condizionale all'interno del callback. Inoltre, se stai stampando uno script direttamente, usa wp_print_scripts
invece di wp_head
. Hai anche un errore di sintassi.
function testingone(){
if( get_option( 'MyOptionName' ) ) {
?>
<script>var Script = GoesHere; </script>
<?php
}
}
add_action( 'wp_print_scripts','testingone' );

Prova a modificare il tuo codice in questo modo:
function testingone() {
if( FALSE !== get_option( 'MyOptionName' ) ) {
echo( 'ok, questo è nell\'head!' );
}
}
add_action( 'wp_head', 'testingone' );
Inoltre, controlla nei file del tuo tema (molto probabilmente header.php
) per assicurarti che la funzione wp_head()
venga chiamata, e verifica che l'opzione MyOptionName
sia impostata per il sito.
Aggiunta nella modifica -- Dovresti anche usare wp_enqueue_script()
per aggiungere JavaScript al tuo sito, anziché inserirli direttamente nell'<head>
.
Riferimenti

function plugin_script() {
wp_enqueue_script( 'Jquery-min', WP_PLUGIN_URL. '/Test Plugin/jquery-min.js', false, '1.11.0' );<br/>
wp_enqueue_style('pluginstyle', WP_PLUGIN_URL. '/Test Plugin/pluginstyle.css',false,'1.0',"all");<br/>
}
add_action( 'wp_head', 'plugin_script' );
L'hook di azione "wp_head" viene attivato all'interno della sezione "head" della pagina.
wp_enqueue_script() viene utilizzato per eseguire gli script JavaScript mentre wp_enqueue_style() serve per includere i fogli di stile CSS dal plugin. "WP_PLUGIN_URL." recupera i file dalla cartella del plugin. "Test plugin" è il nome del tuo plugin "pluginstyle.css" è il foglio di stile del plugin. "jquery-min.js" è lo script JavaScript del plugin.

Per favore spiega come risponde, semplicemente scaricare il codice non è una buona risposta

non è un codice scaricato, l'ho già utilizzato nel mio plugin. Qual è il tuo dubbio, chiedimi e chiarirò in quel codice.

Non l'ho provato, ti stavo suggerendo di aggiungere qualche spiegazione oltre al codice postato per mostrare come risponde alla domanda originale.

Grazie per il tuo suggerimento, in realtà sono nuovo in questo @bravokeyl
