Adăugarea Javascript în tema copil

21 iun. 2018, 13:31:24
Vizualizări: 47.4K
Voturi: 11

Vreau să aplic niște javascript în header și doresc să știu care este cea mai bună modalitate de implementare.

aici este sursa care conține javascript-ul pe care îl includ - https://codepen.io/kaemak/pen/mHyKa/

Ar trebui să creez un nou fișier javascript și să-l adaug în tema copil, dacă da, atunci nu sunt sigur cum să numesc fișierul și dacă se va aplica în head din această locație?

0
Toate răspunsurile la întrebare 2
3
28

Ar trebui să încarci scriptul în fișierul functions.php al temei child. De exemplu, dacă numele fișierului js este custom.js și îl plasezi în folderul js din tema ta child, atunci în functions.php ar trebui să adaugi:

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' );

Aici get_stylesheet_directory_uri() va returna directorul temei tale child, apoi array( 'jquery' ) va face ca js-ul tău să se încarce după jquery, dacă scriptul tău necesită jquery atunci ar trebui să folosești această opțiune, altfel poți elimina sau poți adăuga scriptul dependent aici. Ultimul parametru true, este pentru a face ca js-ul tău să se încarce în footer.

21 iun. 2018 19:49:15
Comentarii

dacă vrea să încarce js din child theme, trebuie să folosească get_stylesheet_directory_uri sau funcția mai nouă get_theme_file_uri.

guido guido
21 iun. 2018 20:07:09

get_theme_file_uri caută întâi în directorul stylesheet înainte de directorul template, astfel temele care moștenesc de la un părinte pot suprascrie un singur fișier, iar el vrea pur și simplu să adauge noul script din directorul style-sheet, deci get_stylesheet_directory_uri ar fi mai potrivit pentru acest caz.

Akshat Akshat
21 iun. 2018 20:24:47

get_theme_file_uri nu suprascrie nimic dacă e folosit într-un child theme, pur și simplu încerci să obții uri-ul în child și dacă nu există, în părinte. În cazul unui asset, suprascrierea se face prin handle. Apropo, get_template_directory_uri caută doar în tema părinte. De asta am comentat.

guido guido
21 iun. 2018 20:39:02
1
-2

Da, creează un nou fișier JavaScript și apelează-l unde dorești, aș sugera să-l apelezi în footer - acesta este cel mai bun mod de a încărca fișiere js. Poți adăuga următorul cod în footer-ul tău:

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

Adăugarea directă a JS nu este cea mai bună practică. Ar trebui să fie încărcat prin functions.php. https://developer.wordpress.org/reference/functions/wp_enqueue_script/#comment-274

WebElaine WebElaine
21 iun. 2018 18:38:46