Cum să adaugi javascript înainte de închiderea tag-ului body în footer-ul WordPress
Urmez sfaturile altor persoane de aici despre adăugarea fișierului js înainte de închiderea tag-ului body, dar nu pare să funcționeze în cazul meu.
Ar putea cineva să verifice acest cod pentru mine?
<?php
/*încarcă fișierul js în footer*/
function myscript()
{
if( wp_script_is( 'jquery', 'done' ) ) {
?>
<script type="text/javascript" src="js/scripts.js"></script>
<?php
}
}
add_action( 'wp_footer', 'myscript' );
?>
Mulțumesc mult
EDITARE:------------------------------------------------
Aceasta este soluția scurtă..
<script language="javascript" src="<?php bloginfo('template_directory'); ?>/js/scripts.js"></script>
dar nu este răspunsul corect, nu-i așa?
EDITARE---------------------------------------------------
Iată ce încerc eu bazat pe exemplele din WP Codex și punctele tale Fischi, dar cred că încă fac ceva greșit..
function my_scripts_method() {
wp_enqueue_script(
'myscript',
get_bloginfo('template_directory') . '/js/scripts.js',
array( 'jquery' ),
'',
true
);
}
add_action('wp_enqueue_scripts', 'my_scripts_method');
Fișierul tot nu se încarcă în footer.

Ar trebui să adaugi întotdeauna JavaScript (și stiluri) folosind funcția WordPress wp_enqueue_script()
.
Funcționează astfel:
wp_enqueue_script(
$handle // numele fișierului tău încărcat, în cazul tău 'myscript'
,$src // sursa fișierului tău, poate fi externă sau pentru exemplul tău: get_bloginfo('template_directory') . '/js/scripts.js'
,$deps // scriptul tău JavaScript depinde de alt fișier JavaScript? de exemplu jQuery? treci un array cu toate dependențele: array( 'jquery' )
,$ver // numărul versiunii pentru JavaScript-ul tău
,$in_footer // aceasta este opțiunea de care ai nevoie: true
);
După ce setezi $in_footer
la true, acesta va fi încărcat în acțiunea wp_footer()
, de obicei chiar înainte de închiderea tag-ului body.
Deci, pentru tine:
wp_enqueue_script( 'myscript', get_bloginfo('template_directory') . '/js/scripts.js', array( 'jquery' ), '', true );
face treaba.
Notă: Nu toate temele apelează (deși ar trebui să o facă) funcția wp_footer();
în subsolul lor / chiar înainte de tag-ul de închidere </body>
.

Mulțumesc mult Fischi. Vezi ediția mea de mai sus... Comentariile StackExchange sunt proaste la markup curat.

Salut Fischi. Tema mea folosește <?php get_footer(); ?>. Am încercat wp_footer(); dar nu a funcționat, footer-ul nu a apărut deloc.

@SixfootJames nicio problemă. reține că diferența dintre get_footer()
și wp_footer()
este că get_footer()
încarcă fișierul template footer.php
, în timp ce wp_footer()
este o acțiune efectuată de WordPress pentru a insera fiecare javascript și stil care sunt definite să apară în footer. De obicei wp_footer()
este plasat în footer.php
, chiar înainte de închiderea tag-ului </body>
.
