首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将依赖项添加到脚本查询中

将依赖项添加到脚本查询中
EN

WordPress Development用户
提问于 2013-03-20 10:50:07
回答 2查看 968关注 0票数 1

当使用wp_enqueue_script()时,依赖项参数的意义是什么?

例如,当我执行以下操作时:

代码语言:javascript
复制
wp_enqueue_script(
    'jscripts',
    get_stylesheet_directory_uri() . "/scripts/jscripts.js",
    array('jquery-ui-datepicker'));

echo wp_script_is('jquery-ui-datepicker', 'queue')
    ? '<br>' . '[jquery-ui-datepicker] Script is enqueued' . '<br>'
    : '<br>' . '[jquery-ui-datepicker] Script not enqueued' . '<br>';

我得到输出‘脚本没有排队’(并且函数不能正常工作)。然而,当我这样做时:

代码语言:javascript
复制
wp_enqueue_script(
    'jscripts',
    get_stylesheet_directory_uri() . "/scripts/jscripts.js");

wp_enqueue_script('jquery-ui-datepicker');

echo wp_script_is('jquery-ui-datepicker', 'queue')
    ? '<br>' . '[jquery-ui-datepicker] Script is enqueued' . '<br>'
    : '<br>' . '[jquery-ui-datepicker] Script not enqueued' . '<br>';

它工作正常,并显示“脚本已排队”。

在读取了文档之后,似乎当您为要加入队列的脚本指定依赖项的句柄时,它将在查询它之前对这些依赖项进行排队。但是,情况似乎并非如此。这都是怎么回事?

EN

回答 2

WordPress Development用户

发布于 2013-03-20 11:39:58

尝尝这个。您必须在适当的时间调用wp_enqueue_script,这样它就可以对脚本进行排队,直到您指定的依赖项被调用-

代码语言:javascript
复制
add_action('wp_enqueue_scripts', 'enqueue_my_scripts');
function enqueue_my_scripts(){

    wp_enqueue_script(
        'jscripts',
        get_stylesheet_directory_uri() . "/scripts/jscripts.js",
        array('jquery-ui-datepicker'));

    echo wp_script_is('jquery-ui-datepicker', 'queue')
        ? '<br>' . '[jquery-ui-datepicker] Script is enqueued' . '<br>'
        : '<br>' . '[jquery-ui-datepicker] Script not enqueued' . '<br>';

}

这是假设您的脚本将在前端被调用。如果wp_enqueue_scripts用于管理区域(例如,插件),则用admin_enqueue_scripts代替它。

票数 2
EN

WordPress Development用户

发布于 2013-03-20 13:10:07

请使用要使用的文件和钩子:

  • wp_enqueue_scripts公共/模板/主题
  • admin_enqueue_scripts管理界面
  • login_enqueue_scripts

然后将所有内容包装在一个函数中,并从您的functions.php文件中挂载它:

代码语言:javascript
复制
add_action( 'wp_enqueue_scripts', 'wpse91592_enqueue_scripts' );
function wpse91592_enqueue_scripts()
{
    wp_register_script(
         'custom_script'
        ,get_stylesheet_directory_uri()."/js/custom_script.js"
        ,array( 'jquery', 'jquery-ui-datepicker' )
         // This argument uses the last update time as version number
         // to prevent browser caching in case of an update
        ,filemtime( get_stylesheet_directory()."/js/custom_script.js" )
         // Now we load it in the footer to not mess up loading times
        ,true
    );

    // The script is registered.
    // Now we're taking "conditional tags" to only load it when we need it
    if (
        is_front_page()
        OR is_archive()
        OR ...
    ) 
        wp_enqueue_script( 'custom_script' );
}
票数 0
EN
页面原文内容由WordPress Development提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

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

复制
相关文章

相似问题

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