我正在为父主题构建一个子主题,该主题在其functions.php中加载所有脚本到一个缩小的JS文件中。在关闭体标记之前,通过将wp_enqueue_script()
的最后一个参数设置为"true“,可以做到这一点。
但是,请注意,在开发人员的S代码出现在最下面之前,这个单个文件包含了几个库。因此,通过滚动文件,您将得到: jQuery,欧芹,光滑,Select2,最后,开发者S代码。
正如我所说,所有文件都在同一个文件中,一个接一个,导致一个大文件(242 of,超过20K行代码)。
因此,当在我的子主题中创建自定义jQuery脚本时,我能够在页面上加载它们,但是我的脚本都没有工作。控制台显示“未定义的ReferenceError:$是未定义的”,我猜想这表示jQuery没有安装.
但是jQuery就在我前面提到的那个缩小的文件中。我的主题使用jQuery..。所以我很困惑。为什么不起作用?
我怀疑这与S开发人员所做的这种方式有关,在那里,他并没有像你通常那样安装jQuery。通过完全复制原始文件只包含几行代码来覆盖原始文件似乎不合适.对如何解决这个问题有什么想法吗?
我在我的孩子主题S function.php中加载我的剧本,如下所示:
define( 'BLK_BOX_VERSION', '1.0.0' );
define( 'BLK_BOX_TEMPLATE_URI', get_stylesheet_directory_uri() );
define( 'BLK_BOX_THEME_SLUG', 'black-box' );
if ( ! function_exists( 'headerNavBar_script' ) ) :
function headerNavBar_script() {
wp_enqueue_script( BLK_BOX_THEME_SLUG . '-scripts', BLK_BOX_TEMPLATE_URI . '/static/dist/scripts/navbar-scroll.js', array(), BLK_BOX_VERSION, true );
}
endif;
add_action( 'wp_enqueue_scripts', 'headerNavBar_script' );
发布于 2017-03-16 19:46:46
终于开始工作了!
除了像belinus亲切地建议的那样,用匿名函数包装我的jQuery之外,我还需要在我的脚本排队之前添加wp_enqueue_script('jquery');
。
这是斯塔克溢出公司Gavin提供的一个答案:https://stackoverflow.com/questions/28248113/jquery-is-not-defined-in-wordpress-but-my-script-is-enqueued-properly
啊,真灵!
https://wordpress.stackexchange.com/questions/260399
复制相似问题