Aggiungere javascript al tema child

21 giu 2018, 13:31:24
Visualizzazioni: 47.4K
Voti: 11

Voglio applicare del javascript al mio header e vorrei sapere qual è il modo migliore per implementarlo.

qui c'è il codice sorgente che contiene il javascript che sto includendo - https://codepen.io/kaemak/pen/mHyKa/

Dovrei creare un nuovo file javascript e poi aggiungerlo al tema child? In tal caso non sono sicuro di come chiamare il file e se verrà applicato all'header da questa posizione.

0
Tutte le risposte alla domanda 2
3
28

Dovresti accodare lo script nel file functions.php del child theme. Ad esempio, se il nome del file js è custom.js e lo posizioni nella cartella js del tuo child theme, allora in functions.php dovresti aggiungere:

function my_custom_scripts() {
    wp_enqueue_script( 'custom-js', get_stylesheet_directory_uri() . '/js/custom.js', array( 'jquery' ),'',true );
}
add_action( 'wp_enqueue_scripts', 'my_custom_scripts' );

Qui get_stylesheet_directory_uri() restituirà la directory del tuo child theme, poi array( 'jquery' ) farà sì che il tuo js venga caricato dopo jQuery, se il tuo script richiede jQuery allora dovresti usare questo altrimenti puoi rimuoverlo o aggiungere qui lo script dipendente, infine l'ultimo parametro true serve per far caricare il tuo js nel footer.

21 giu 2018 19:49:15
Commenti

se vuole includere JS dal child theme deve usare get_stylesheet_directory_uri o la funzione più recente get_theme_file_uri.

guido guido
21 giu 2018 20:07:09

get_theme_file_uri cerca prima nella directory dello stylesheet (child theme) e poi nella directory del template (parent theme), quindi i temi che ereditano da un parent theme possono sovrascrivere un singolo file. Se vuole semplicemente aggiungere il nuovo script dalla directory dello stylesheet, get_stylesheet_directory_uri sarebbe più adatto in questo caso.

Akshat Akshat
21 giu 2018 20:24:47

get_theme_file_uri non sovrascrive nulla se usato in un child theme, cerca semplicemente l'URI nel child e se non esiste cerca nel parent. Nel caso di un asset, la sovrascrittura viene gestita dall'handle. Comunque get_template_directory_uri cerca solo nel parent theme. Ecco perché ho commentato.

guido guido
21 giu 2018 20:39:02
1
-2

Sì, crea un nuovo file JavaScript e chiamalo dove vuoi, ti suggerisco di chiamarlo sotto il footer che è il modo migliore per includere file js. Puoi aggiungere il seguente codice al tuo footer:

<script  src="<?php echo get_template_directory_uri(); ?>/filename.js"></script>
21 giu 2018 18:14:18
Commenti

Aggiungere JS direttamente non è una best practice. Dovrebbe essere accodato attraverso functions.php. https://developer.wordpress.org/reference/functions/wp_enqueue_script/#comment-274

WebElaine WebElaine
21 giu 2018 18:38:46