WordPress 在页脚中声明 JQuery
WordPress is declaring JQuery in the Footer
我从第 3 方获得了一个 WordPress (WP) 网站。我使用 Drupal,所以我在 WP 方面并不全面。
也就是说,我正在尝试安装 Google 跟踪代码管理器 (GTM)。但是,我收到控制台错误,指出 JQuery 未定义。我发现 JQuery 是在 <footer>
中定义的,而不是 <head>
。我过去在使用 Drupal 时遇到过这个问题,但我不确定从哪里开始使用 WP。
看了模板,我发现头部有一个<?php wp_head(); ?>
标签,页脚有一个<?php wp_footer(); ?>
标签。这两个标签都注入脚本,但显然 JQuery 是通过页脚标签注入的。据我所知,脚本是在 script-loader.php 文件中编译的,但该文件有点让人不知所措。我不确定要移动什么才能通过 <?php wp_head(); ?>
标签注入 JQuery。
我已经上传 script-loader.php document to Google Drive。我会将它放入一个 .txt 文件中,以便它在 GDrive 中可读。
如果还有什么我可以提供的,请告诉我。感谢任何有用的反馈!
您想在 wordpress 中注册和排队脚本,您不会自己将它们放在 header/footer 中。
主题模板文件夹下有一个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 );
}
但是用你的 GTM 包含替换我的第三个队列 "includes",或者直接删除它。这将确保 jQuery 和 jQuery UI 在正确的时间加载。第三个选项确保在加载我的 includes.php
之前加载它们
在 WordPress 的 Stack Exchange 网站上发帖后,I found a solution。基本上,我必须将 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');
我从第 3 方获得了一个 WordPress (WP) 网站。我使用 Drupal,所以我在 WP 方面并不全面。
也就是说,我正在尝试安装 Google 跟踪代码管理器 (GTM)。但是,我收到控制台错误,指出 JQuery 未定义。我发现 JQuery 是在 <footer>
中定义的,而不是 <head>
。我过去在使用 Drupal 时遇到过这个问题,但我不确定从哪里开始使用 WP。
看了模板,我发现头部有一个<?php wp_head(); ?>
标签,页脚有一个<?php wp_footer(); ?>
标签。这两个标签都注入脚本,但显然 JQuery 是通过页脚标签注入的。据我所知,脚本是在 script-loader.php 文件中编译的,但该文件有点让人不知所措。我不确定要移动什么才能通过 <?php wp_head(); ?>
标签注入 JQuery。
我已经上传 script-loader.php document to Google Drive。我会将它放入一个 .txt 文件中,以便它在 GDrive 中可读。
如果还有什么我可以提供的,请告诉我。感谢任何有用的反馈!
您想在 wordpress 中注册和排队脚本,您不会自己将它们放在 header/footer 中。
主题模板文件夹下有一个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 );
}
但是用你的 GTM 包含替换我的第三个队列 "includes",或者直接删除它。这将确保 jQuery 和 jQuery UI 在正确的时间加载。第三个选项确保在加载我的 includes.php
之前加载它们在 WordPress 的 Stack Exchange 网站上发帖后,I found a solution。基本上,我必须将 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');