WooCommerce, как загрузить пользовательский файл javascript при использовании темы Mystile?

#php #wordpress #woocommerce

#php #wordpress #woocommerce

Вопрос:

Привет, у меня активирован плагин WooCommerce и тема Mystile. Я хочу добавить пользовательский файл js, расположенный по адресу mystile/includes/js/custom-script.js . Я читал о том, как добавлять файлы с помощью using wp_enque_script , но при просмотре исходного кода страницы файлы js не загружаются. У меня есть этот блок кода на functions.php моей текущей темы, которая является Mystile, которая должна была добавить мой пользовательский js-файл

 function add_custom_assets(){
//Load masonry CSS and JS files
wp_enqueue_script('masonry', get_stylesheet_directory_uri().'includes/js/custom-script.js',array('jquery'), '1', true);
}

add_action('wp_enqueue_scripts','add_custom_assets');
  

приведенный выше код не работает, и я не вижу свой JS-файл в исходном коде. Я действительно не знаю, что я делаю не так. Я даже пытался wp_register_scripts , но это то же самое.
Единственное изменение, которое я внес в текущую тему, заключалось в том, что я скопировал templates папку из каталога плагинов woocommerce в мою текущую тему и переименовал ее woocommerce , чтобы переопределить определенные материалы. Есть предложения

Ответ №1:

вы должны указать уникальные дескрипторы (чтобы материал не переопределялся)

 function add_custom_assets(){
    wp_enqueue_script('my-custom-script-handle', get_stylesheet_directory_uri().'includes/js/custom-script.js',array('jquery'), '1', true);
}

add_action('wp_enqueue_scripts','add_custom_assets');
  

Комментарии:

1. Почему masonry не был уникальным обработчиком. В любом случае, это сработало. Приветствия

2. Дескриптор отличается. Если вы ставите в очередь скрипт с тем же дескриптором, он может быть переопределен (в зависимости от порядка)..

3. Возможно, ваша тема загружает оригинальные скрипты masonry после того, как она загрузила ваш скрипт с тем же дескриптором.. всегда сохраняйте уникальный дескриптор, и у вас не должно возникнуть никаких проблем. Приветствия

Ответ №2:

Это не идеальное решение, но это хак, и он работает. Поставьте скрипт в очередь как wp_enqueue_style , а не wp_enqueue_script . Он загружает скрипт, но это очень грязное решение. Тем не менее, вопрос остается открытым