为什么wp_enQueue_SCRIPT(‘jQuery-Masonry’)不工作?

时间:2013-08-20 作者:Steven

我正在尝试将masonry sript添加到我的站点,但是wp_enqueue_script(\'jquery-masonry\'); 未添加脚本。

相反,我必须使用:

wp_register_script(\'jquery_masonry\', includes_url(). \'/js/jquery/jquery.masonry.min.js\', \'jquery\');
wp_enqueue_script(\'jquery_masonry\');
为什么会这样?

2 个回复
SO网友:s_ha_dum

jQuery的砌体是bundled with WordPress. 你只需要wp_enqueue_script(\'jquery-masonry\'); 但请注意,“slug”是jquery-masonry, 不jquery_masonry. 并确保您在wp_enqueue_scripts 挂钩或更高版本。

function enqueue_masonry() {
  wp_enqueue_script(\'jquery-masonry\');
}
add_action(\'wp_enqueue_scripts\',\'enqueue_masonry\');
我猜您的问题与注册/排队有关,因为加载核心脚本非常简单。

如果这不起作用,说明你的网站有问题。一个插件或主题可能正在注销。如果没有更多的信息,很难说什么。

SO网友:Eric Holmes

s\\u ha\\u dum是正确的,您不需要自己排队。

也就是说,脚本无法工作的原因是依赖性变量不是数组。您的代码应为:

wp_register_script(\'jquery_masonry\', includes_url(). \'/js/jquery/jquery.masonry.min.js\', array( \'jquery\' ) );
在WP\\u dependencies类的深处,如果传递的值不是数组,它会将其设置为空数组,因此使其没有依赖性。(如有兴趣,请参阅wp\\U includes/class.wp\\u Dependencies.php第251行,自wp 3.6起)

所以我假设它是在jQuery加载之前加载到Masonry脚本中的,因此导致它什么都不做。

也就是说,请使用s\\u ha\\u dum的响应,因为它已经在WordPress中注册,并等待排队。

结束