Код Javascript не запускается при вызове из functions.php в Wordpress

Я пытаюсь вызвать файл JS из файла functions.php в Wordpress. Когда я запускаю тот же код в jsFiddle, все работает. Итак, я пришел к выводу, что это специфично для Wordpress.

Вы можете найти jsFiddle здесь: jsFiddle код

А это мой код в functions.php

add_action( 'wp_enqueue_scripts', 'my_enqueue_assets' );

function my_enqueue_assets() {

    wp_enqueue_style( 'cookies-consent-style', get_stylesheet_directory_uri().'/cookies-consent/cookies-consent.css' );
    wp_enqueue_script('cookies-consent', get_stylesheet_directory_uri().'/cookies-consent/cookies-consent.js');
    wp_enqueue_script('cookies-consent-content', get_stylesheet_directory_uri().'/cookies-consent/content.js');

} 

Все три URL-адреса действительны и доступны с веб-сайта. Все они есть в исходном коде, и когда я их посещаю, они открываются без ошибок.

Когда я запускаю тот же код в jsFiddle с файлом content.js на панели Javascript, я вижу всплывающее окно в правом нижнем углу.

Кроме того, у меня нет ошибок на консоли. И если я добавлю console.info('hello'); в content.js, его все равно не будет на выходе консоли.

Обновлено: проблема была исправлена. Это была проблема с плагином Breeze, из-за которой все файлы JS были перемещены в тег head. Итак, мне пришлось исключить его, чтобы продолжить загрузку в нижний колонтитул.

Можете дать ссылку или вы работаете локально? Применяется ли CSS?

Omar Tanti 18.03.2018 20:23

Обычно не публикуют ссылки, так как через несколько месяцев они могут быть недоступны. Но это тот самый www.stackprime.com

Tasos 18.03.2018 21:26

Когда я проверяю источник www.stackprime.com и ищу строку куки-согласие, я не вижу в очереди файлов, которые имеют отношение к куки-согласие. Также я вижу ошибку javascript: Uncaught TypeError: Невозможно прочитать свойство firstChild со значением null в файле breeze_c189e3fe9cf5476c30ec3ab2c90d26eb.js в строке 9.

Omar Tanti 19.03.2018 02:45

Я вижу, что вы используете плагин Breeze - WordPress Cache Plugin, а также вам удалось найти миниатюрный файл js для сценария куки-контент. Вы пытались обернуть свой сценарий в jQery(document).ready(function(){})?

Omar Tanti 19.03.2018 07:07

@OmarTanti Проверьте мой обновленный пост. Мне удалось это исправить, спасибо, что указали мне на плагин Breeze. Он автоматически переместил JS в верхний колонтитул, а не в нижний колонтитул, и код не мог работать. Спасибо :)

Tasos 19.03.2018 08:01

Отлично, рад, что вам удалось решить проблему :) Вы можете попробовать продолжать использовать плагин Breeze, не исключая файл, передав параметр 'footer' в wp_enqueue_script: wp_enqueue_script ('cookies-agreement-content', get_stylesheet_directory_uri (). '/cookies-consent/content.js'‌, [' cookies-content '],' 0.1 ', true);

Omar Tanti 19.03.2018 08:15
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
6
49
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Иногда сценарии могут зависеть от других сценариев, поэтому необходимо убедиться, что сценарии поставлены в очередь в правильной последовательности. Функция wp_enqueue_script принимает параметр $in_footer, чтобы убедиться, что сценарий загружается в нижний колонтитул, если он зависит от других сценариев, загружаемых в заголовок. Он также принимает другой параметр $deps (зависимости).

Даже если вы используете плагин Breeze - WordPress Cache, вы все равно можете попытаться установить для параметра $in_footer значение true, чтобы избежать исключения скрипта из плагина кеширования. Попробуйте изменить свои wp_enqueue_scripts следующим образом:

wp_enqueue_script('cookies-consent', get_stylesheet_directory_uri().'/cookies-consent/cookies-consent.js', array(), '0.1', true);

wp_enqueue_script('cookies-consent-content', get_stylesheet_directory_uri().'/cookies-consent/content.js', array('cookies-content'), '0.1', true);

Другие вопросы по теме