Мне вручили сайт WordPress (WP) от третьего лица. Я работаю с Drupal, поэтому я не очень хорошо разбираюсь в WP.
Тем не менее, я пытаюсь установить Google Tag Manager (GTM). Тем не менее, я получаю консольные ошибки, утверждая, что JQuery не определен. Я обнаружил, что JQuery определяется в <footer>
, не <head>
, У меня была эта проблема в прошлом с Drupal, но я не уверен, с чего начать с WP.
Посмотрев на шаблон, я обнаружил, что есть <?php wp_head(); ?>
тег в голову и есть <?php wp_footer(); ?>
тег в нижнем колонтитуле. Оба тега внедряют скрипты, но, очевидно, JQuery внедряется через тег нижнего колонтитула. Из того, что я могу сказать, сценарии скомпилированы в документе script-loader.php, но этот документ немного перегружен. Я не совсем уверен, что нужно перемещать, чтобы вводить JQuery через <?php wp_head(); ?>
тег.
Я загрузил script-loader.php документ на Google Диск. Я положу его в файл .txt, чтобы он читался в GDrive.
Пожалуйста, дайте мне знать, если есть что-нибудь еще, что я могу предоставить. Любые полезные отзывы приветствуются!
Вы хотите зарегистрироваться и поставить в очередь скрипты в WordPress, вы не помещаете их в верхний / нижний колонтитул самостоятельно.
в папке шаблона темы есть файл functions.php, внутри которого может быть функция, вызывающая хук wp_enqueue_scripts, найдите его и измените его перед созданием нового.
если нет, добавьте что-то вроде этого:
add_action( 'wp_enqueue_scripts', 'add_my_script' );
function add_my_script() {
wp_enqueue_script( 'jquery' );
wp_enqueue_script( 'jquery-ui-core' );
wp_enqueue_script( 'includes', get_template_directory_uri() . '/js/includes.js?v=2', array(
'jquery',
'jquery-ui-core'
), '1.0', true );
}
но замените мой третий enqueue «include» на ваш GTM include или просто удалите его. это обеспечит загрузку jQuery и jQuery UI в нужное время. третий вариант гарантирует, что они будут загружены перед загрузкой моего include.php
После публикации на сайте Stack Exchange для WordPress, Я нашел решение. По сути, мне пришлось поставить в очередь скрипт GTM, объявив JQuery зависимостью от него. Сценарий, который мне предоставили, выглядит следующим образом:
function my_theme_add_gtm_script() {
wp_enqueue_script('google-track-manager', get_template_directory_uri() . '/assets/js/gtm.js', array('jquery'), false, false);
}
add_action('wp_enqueue_scripts', 'my_theme_add_gtm_script');