скрипт enqueue не работает (стиль enqueue работает)

Чтобы добавить файл CSS и файл JS, я добавил их в functions.php :

function my_theme_enqueue_styles() {    wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css' );}function my_theme_enqueue_scripts() {    wp_enqueue_script( 'behavior', get_script_directory_uri() . '/behavior.js', array(), null, true );}add_action( 'wp_enqueue_style', 'my_theme_enqueue_styles' );add_action( 'wp_enqueue_script', 'my_theme_enqueue_scripts' );

После сделав это, я сохранил и закрыл редактор, вернулся в тот же каталог functions.php (это каталог дочерней темы), объявление создало новый файл, поведение.js .

В поведение.js я добавил, только для тестирования:

alert('Hi');

Я сохранил, вернулся на свой сайт и полностью обновил, но предупреждение не появляется. Почему это так?

Ответы и комментарии:

Это заставило мой сайт показать WSOD ...
Создан 12-09-2017 02:39 JohnDoea

Ну, не WSOD. CTRL + U показывает немного HTML, но CSS не загружается вообще. Я просто вижу белую пустую страницу. Мой конструктор страниц (Elementor) не загружает HTML, поэтому добавление JS заставляет мой компоновщик страниц не загружаться.
Создан 12-09-2017 02:01 JohnDoea

get_script_directory_uri () не является функцией, вы получаете ошибку, потому что my_theme_enqueue_scripts правильно перехвачен, но содержит эту ошибку.
Создан 12-09-2017 02:21 Jacob Peattie

Ваша функция стиля работает, потому что wp_enqueue_style использует get_template_directory_uri, и она не была сломана раньше, потому что my_theme_enqueue_scripts () вообще не работала. Я бы не сказал, что вы были в детской теме, поэтому я обновлю свой ответ.
Создан 12-09-2017 03:30 Jacob Peattie

Я обновил свой ответ с лучшим решением.
Создан 12-09-2017 03:11 Jacob Peattie

Вы используете не тот крючок. wp_enqueue_scripts - правильный хук для обоих:
add_action ('wp_enqueue_scripts', 'my_theme_enqueue_styles');
add_action ('wp_enqueue_scripts', 'my_theme_enqueue_scripts');

Но так как они имеют одинаковый хук, вы можете просто поставить оба файла в один и тот же обратный вызов:
function my_theme_enqueue_assets () {
    wp_enqueue_style ('parent-style', get_parent_theme_file_uri ('style.css'));
    wp_enqueue_script («поведение», get_theme_file_uri («поведение.js»), массив (), ноль, true);
}
add_action ('wp_enqueue_scripts', 'my_theme_enqueue_assets');

Я также использовал новые функции get_parent_theme_file_uri () и get_theme_file_uri () для получения URL-адресов файлов. get_parent_theme_file_uri () получит URI для данного файла только в родительской теме, в то время как get_theme_file_uri () получит файл из текущей темы, и если это дочерняя тема, он вернется к родительской теме, если файл не существуют в детской теме.
Обратите внимание, что им все еще нужен путь к файлу внутри темы, если они находятся в папке, например. get_theme_file_uri ('path / to / file.js');
Создан 12-09-2017 03:52