WordPress在页脚中声明了JQuery

时间:2017-03-28 13:19:16

标签: php wordpress wordpress-theming google-tag-manager

我已经从第三方获得了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中可读。

如果我能提供其他任何内容,请告诉我。任何有用的反馈表示赞赏!

2 个答案:

答案 0 :(得分:1)

你想在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 );
}

但是用你的GTM包括替换我的第三个enqueue“includes”,或者只删除它。这将确保在正确的时间加载jQuery和jQuery UI。第三个选项确保在加载我的includes.php

之前加载它们

答案 1 :(得分:0)

在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');