向脚本查询添加依赖项

时间:2013-03-20 作者:William

使用wp\\u enqueue\\u script()时,dependencies参数有什么意义?

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

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_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>\';
它工作正常,并显示“脚本已排队”。

已阅读documentation, 看起来,当您为要排队的脚本指定依赖项句柄时,它会在排队之前将这些依赖项排队。但事实似乎并非如此。这一切是如何运作的?

2 个回复
SO网友:David Gard

试试这个。您必须在适当的时间调用wp\\u enqueue\\u script,以便它可以对您的脚本进行排队,直到您指定的依赖项被调用为止-

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 如果是管理区域(例如插件)。

SO网友:kaiser

请使用文件(&P);拟使用的挂钩:

  • wp_enqueue_scripts 公共/模板/主题admin_enqueue_scripts 管理UIlogin_enqueue_scripts
然后将所有内容包装在一个函数中,并从functions.php 文件:

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\' );
}

结束

相关推荐