Impossibile accodare gli script nel footer?
Il codex di WordPress dice:
$in_footer
(booleano) (opzionale) Normalmente gli script vengono posizionati nella sezione. Se questo parametro è true lo script viene posizionato in fondo al. Questo richiede che il tema abbia l'hook wp_footer() nel punto appropriato. Nota che devi accodare il tuo script prima che wp_head venga eseguito, anche se verrà posizionato nel footer. (Novità in WordPress 2.8) Predefinito: false
Quindi ho aggiunto true
dopo ogni src path
dello script:
/**
* JavaScript
*/
function my_scripts_method() {
wp_deregister_script( 'jquery' );
wp_register_script( 'jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.6/jquery.min.js', true );
wp_enqueue_script( 'jquery' );
}
add_action('wp_enqueue_scripts', 'my_scripts_method');
function media_queries_script() {
wp_register_script( 'mediaqueries', get_template_directory_uri() . '/js/css3-mediaqueries.js', true );
wp_enqueue_script( 'mediaqueries' );
}
add_action('wp_enqueue_scripts', 'media_queries_script');
function custom_script() {
wp_register_script( 'custom', get_template_directory_uri() . '/js/custom.js', true );
wp_enqueue_script( 'custom' );
}
add_action('wp_enqueue_scripts', 'custom_script');
function replace_script() {
wp_register_script( 'replace', get_template_directory_uri() . '/js/jquery.ba-replacetext.min.js', true );
wp_enqueue_script( 'replace' );
}
add_action('wp_enqueue_scripts', 'replace_script');
Ma gli script vengono ancora inclusi nell'header.
Qualche suggerimento per risolvere?

Dove hai messo il tuo codice?
- L'argomento "true" va in
wp_register_script();
, non inwp_enqueue_script();
La funzione è:
<?php wp_enqueue_script('handle', 'src', 'deps', 'ver', 'in_footer'); ?>
che significa
<?php wp_enqueue_script('NomeMioScript', 'percorso/al/MioScript',
'dipendenze_MioScript', 'VersioneMioScript', 'InfooterVeroOFalso'); ?>
ESEMPIO:
<?php
wp_enqueue_script('mio_script', WP_CONTENT_URL . 'plugins/mio_plugin/mio_script.js', array('jquery', 'altro_script'), '1.0.0', true);
?>
- Il tuo tema ha
<?php wp_footer(); ?>
alla fine della pagina?
3. Aggiungi l'azione con add_action('wp_print_scripts', 'tua_funzione');
Detto questo, la tua best practice sarebbe:
<?php
if (function_exists('carica_i_miei_script')) {
function carica_i_miei_script() {
if (!is_admin()) {
wp_deregister_script( 'jquery' );
wp_register_script('jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js');
wp_enqueue_script('jquery');
wp_register_script('mioscript', bloginfo('template_url').'/js/mioScript.js'__FILE__), array('jquery'), '1.0', true );
wp_enqueue_script('mioscript');
}
}
}
add_action('init', 'carica_i_miei_script');
?>
oppure add_action('wp_print_scripts', 'registra_js_dl');

Grazie, ora funziona, ma ho notato che inserire true
sia in wp_enqueue
che in wp-register_script
funziona bene.

@krembo99 La funzione wp_register_script()
accetta lo stesso numero di argomenti e entrambe aggiungono all'array globale $wp_scripts
e al subarray data
. Combinando le informazioni errate con la scarsa leggibilità della tua risposta, devo darti un -1 (verrà rimosso in caso di revisione).

Vorrei semplificare la risposta qui... Quando si utilizza wp_enqueue_script
o wp_register_script
per caricare uno script nel footer, è necessario assicurarsi di includere anche gli altri parametri, anche se sono vuoti.
Stavo provando..
wp_register_script( 'rrssb', get_stylesheet_directory_uri() . '/includes/rrssb.min.js', true);
Il che non ha funzionato, come ha notato @janoChen. WordPress richiede
wp_enqueue_script( $handle, $src, $deps, $ver, $in_footer );
Quindi è necessario includere '',
per i parametri che non si stanno utilizzando se si vuole dichiarare la funzione in linea. Di conseguenza, il codice seguente funziona come previsto.
wp_register_script( 'rrssb', get_stylesheet_directory_uri() . '/includes/rrssb.min.js', '', '', true);
Successivamente è possibile dichiarare la funzione in formato array come mostra @Brian Fegter.

Secondo la documentazione ufficiale di WordPress (Ultimo controllo - Maggio 2018):
https://developer.wordpress.org/reference/functions/wp_enqueue_script/
e un'esperienza personale di oltre 7 anni.
Dovresti sempre cercare di utilizzare la funzione 'wp_enqueue_scripts' per una migliore compatibilità con plugin/temi installati.
add_action('wp_enqueue_scripts','your_plugin_enqueue');
Puoi trovare maggiori informazioni sulla documentazione ufficiale Utilizzo qui
/**** wp_register_script, wp_enqueue_script, wp_dequeue_script *** *** Raccomandazione personale * - Raccomando vivamente di registrare tutti gli script prima di accodarli, * di nuovo -> per una migliore compatibilità con altri sviluppatori. * :::: Per esempio, così altri potrebbero manipolare la posizione * dei tuoi script usando il metodo wp_dequeue_*type*. * (wp_dequeue_script, wp_dequeue_style,...) *** Documentazione Ufficiale * $in_footer * - (bool) (Opzionale) Se accodare lo script prima di </body> invece che nel <head>. Predefinito 'false'. * - Valore predefinito: false * ***/ // esempi: function your_plugin_enqueue(){ wp_dequeue_script('some_script(s)'); // rimuove script in conflitto wp_register_script( $handle, $src, $deps, $ver, $in_footer=true ); wp_enqueue_script($handle); wp_register_script('some_script(s)', $src, $deps, $ver, $in_footer=true); // ri-accoda gli script dopo il tuo per esempio per eliminare i conflitti wp_enqueue_script('some_script(s)'); } add_action('wp_enqueue_scripts','your_plugin_enqueue');
P.S. Se trovi questa risposta utile, per favore dai un '▲' (FrecciaSU), se pensi che possa essere migliorata, commenta qui sotto.
