Добавление javascript в дочернюю тему

21 июн. 2018 г., 13:31:24
Просмотры: 47.4K
Голосов: 11

Я хочу добавить некоторый javascript в мой header и хочу узнать, какой способ реализации будет наилучшим.

вот источник, который содержит javascript, который я включаю - https://codepen.io/kaemak/pen/mHyKa/

Должен ли я создать новый javascript файл и добавить его в child theme, и если да, то я не уверен, как назвать файл и будет ли он применяться к head из этого расположения?

0
Все ответы на вопрос 2
3
28

Вам следует подключить скрипт в файле functions.php дочерней темы. Например, если имя вашего JS-файла custom.js и он расположен в папке js вашей дочерней темы, то в functions.php нужно добавить:

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

Здесь get_stylesheet_directory_uri() вернет директорию вашей дочерней темы, array( 'jquery' ) загрузит ваш JS после jQuery (если ваш скрипт требует jQuery, используйте этот параметр, иначе его можно удалить или добавить другие зависимые скрипты), а последний параметр true указывает на загрузку скрипта в подвале (footer) страницы.

21 июн. 2018 г. 19:49:15
Комментарии

Если он хочет подключить JS из дочерней темы, ему нужно использовать get_stylesheet_directory_uri или более новую функцию get_theme_file_uri.

guido guido
21 июн. 2018 г. 20:07:09

get_theme_file_uri сначала ищет в директории стилей (stylesheet directory), а затем в шаблонной директории (template directory), поэтому темы, наследующие от родительской темы, могут просто переопределить один файл. Если он просто хочет добавить новый скрипт из директории стилей, то get_stylesheet_directory_uri будет более подходящим для этого случая.

Akshat Akshat
21 июн. 2018 г. 20:24:47

get_theme_file_uri ничего не переопределяет при использовании в дочерней теме - он просто пытается получить URI в дочерней теме, и если файл не найден, ищет в родительской. В случае с ассетом переопределение выполняется через handle. Кстати, get_template_directory_uri ищет только в родительской теме. Поэтому я и оставил комментарий.

guido guido
21 июн. 2018 г. 20:39:02
1
-2

Да, создайте новый JavaScript файл и просто подключите его там, где вам нужно. Я рекомендую подключать его в подвале (footer) - это лучший способ подключения JS файлов. Вы можете добавить следующий код в подвал вашего сайта:

<script  src="<?php echo get_template_directory_uri(); ?>/filename.js"></script>
21 июн. 2018 г. 18:14:18
Комментарии

Добавление JavaScript напрямую не является лучшей практикой. Его следует подключать через functions.php. https://developer.wordpress.org/reference/functions/wp_enqueue_script/#comment-274

WebElaine WebElaine
21 июн. 2018 г. 18:38:46