add action wp_head nu funcționează
Încerc să adaug niște cod în head (mai exact un bloc de script de tracking) printr-un plugin pe care îl dezvolt.
Plugin-ul are o interfață unde utilizatorul introduce câteva detalii care sunt apoi adăugate în tabela de opțiuni. Până aici totul funcționează perfect. Dar apoi vreau să scriu o instrucțiune condițională dacă există o opțiune deschisă atunci să adaug în head. Practic am totul în fișierul principal al plugin-ului și arată așa:
if(get_option( 'MyOptionName' )){
function testingone(){ ?>
<script>var Script = GoesHere; </script>
<?php ;}
add_action('wp_head','testingone');
}
Am încercat să pun acest cod în interiorul blocului care preia datele și apoi le adaugă în opțiuni, dar nu a funcționat, apoi am decis să o fac în acest fel, unde verifică dacă există o opțiune în tabelă dar nici această metodă nu injectează nimic în head. În unele locuri am văzut că oamenii pun add_action deasupra funcției, dar în codex se arată un exemplu cu ea dedesubt. Oricum am încercat ambele variante și nu am reușit.
Poate cineva să vadă unde este greșeala?
Mulțumesc

Trage add_action()
în afara funcției și pune condiționalul în interiorul callback-ului. De asemenea, dacă afișezi un script direct, folosește wp_print_scripts
în loc de wp_head
. Ai și o eroare de sintaxă.
function testingone(){
if( get_option( 'MyOptionName' ) ) {
?>
<script>var Script = GoesHere; </script>
<?php
}
}
add_action( 'wp_print_scripts','testingone' );

Încearcă să modifici codul:
function testingone() {
if( FALSE !== get_option( 'MyOptionName' ) ) {
echo( 'ok, acesta este în head!' );
}
}
add_action( 'wp_head', 'testingone' );
De asemenea, verifică în fișierele temei tale (cel mai probabil header.php
) pentru a te asigura că funcția wp_head()
este apelată și verifică dacă opțiunea MyOptionName
este setată pentru site.
Editat pentru a adăuga -- Ar trebui să folosești și wp_enqueue_script()
pentru a adăuga JavaScript în site-ul tău, în loc să le introduci direct în <head>
.
Referințe

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' );
Acțiunea "wp_head" este declanșată în secțiunea "head" a paginii.
wp_enqueue_script() este folosit pentru încărcarea scripturilor, iar wp_enqueue_style() pentru încărcarea fișierelor CSS din Plugin. "WP_PLUGIN_URL." va prelua datele din folderul plugin-ului temei. "Test Plugin" este numele plugin-ului tău "pluginstyle.css" este fișierul CSS al plugin-ului. "jquery-min.js" este scriptul plugin-ului.

Te rog explică cum răspunde, doar să arunci codul nu este un răspuns bun

nu este un cod aruncat pe care l-am folosit deja în pluginul meu. Ce dubii ai, întreabă-mă și voi clarifica în legătură cu acel cod.

Nu am încercat, doar vă sugeram să adăugați o explicație în plus față de codul postat, care să arate cum răspunde la întrebarea inițială.
