首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WP_enqueue_script()总是在wp_footer()中加载它们?

WP_enqueue_script()总是在wp_footer()中加载它们?
EN

WordPress Development用户
提问于 2012-07-25 08:47:16
回答 1查看 4.4K关注 0票数 1

这是放置在functions.php中的示例代码:

代码语言:javascript
复制
function my_init_method() {
    wp_enqueue_script('jquery');
    wp_enqueue_script('jquery-ui-core', false, array('jquery'), false, false);
    wp_enqueue_script('jquery-ui-widget', false, array('jquery'), false, false);
    wp_enqueue_script('jquery-ui-mouse', false, array('jquery'), false, false);
    wp_enqueue_script('jquery-ui-accordion', false, array('jquery'), false, false);
    wp_enqueue_script('jquery-ui-slider', false, array('jquery'), false, false);
    wp_enqueue_script('jquery-ui-tabs', false, array('jquery'), false, false);
    wp_enqueue_script('jquery-ui-sortable', false, array('jquery'), false, false);
    wp_enqueue_script('jquery-ui-draggable', false, array('jquery'), false, false);
    wp_enqueue_script('jquery-ui-droppable', false, array('jquery'), false, false);
    wp_enqueue_script('jquery-ui-selectable', false, array('jquery'), false, false);
    //wp_enqueue_script('jquery-ui-datepicker', false, array('jquery'), false, false);
    wp_enqueue_script('jquery-ui-resizable', false, array('jquery'), false, false);
    wp_enqueue_script('jquery-ui-dialog', false, array('jquery'), false, false);
    //wp_enqueue_script('jquery-ui-button', false, array('jquery'), false, false);
}
add_action('init', 'my_init_method');

以下是参考资料:http://codex.wordpress.org/Function_参考/wp_排队_脚本

为什么除jQuery之外的所有脚本都加载在wp_footer()中而不是wp_head()中?我将最后一个参数设置为false。我还尝试了true和完全删除参数,比如:wp_enqueue_script('jquery-ui-core');。然而,他们总是载入页脚。

EN

回答 1

WordPress Development用户

发布于 2012-07-25 10:14:57

正如其他人所指出的,您需要连接到wp_enqueue_scripts。您还需要在WordPress的任何其他部分之前对脚本进行排队,因为wp_enqueue_script()“如果还没有包含脚本,就包括它”。如果脚本已经包括在内,我相信你将无法改变它的位置从页脚到头部。

因此,工作代码可能如下所示:

代码语言:javascript
复制
function my_enqueue_scripts_method() {
    wp_enqueue_script('jquery');
    wp_enqueue_script('jquery-ui-core', false, array('jquery'), false, false);
    wp_enqueue_script('jquery-ui-widget', false, array('jquery'), false, false);
    wp_enqueue_script('jquery-ui-mouse', false, array('jquery'), false, false);
    wp_enqueue_script('jquery-ui-accordion', false, array('jquery'), false, false);
    wp_enqueue_script('jquery-ui-slider', false, array('jquery'), false, false);
    wp_enqueue_script('jquery-ui-tabs', false, array('jquery'), false, false);
    wp_enqueue_script('jquery-ui-sortable', false, array('jquery'), false, false);
    wp_enqueue_script('jquery-ui-draggable', false, array('jquery'), false, false);
    wp_enqueue_script('jquery-ui-droppable', false, array('jquery'), false, false);
    wp_enqueue_script('jquery-ui-selectable', false, array('jquery'), false, false);
    //wp_enqueue_script('jquery-ui-datepicker', false, array('jquery'), false, false);
    wp_enqueue_script('jquery-ui-resizable', false, array('jquery'), false, false);
    wp_enqueue_script('jquery-ui-dialog', false, array('jquery'), false, false);
    //wp_enqueue_script('jquery-ui-button', false, array('jquery'), false, false);
}
add_action('wp_enqueue_scripts', 'my_enqueue_scripts_method', 1);

编辑:但正如@toscho所说,这只是修复了您处理自己脚本的最有可能的破坏方式。为了最大限度地提高性能,应该在页脚中加载这些内容。

票数 0
EN
页面原文内容由WordPress Development提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://wordpress.stackexchange.com/questions/59585

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档