当使用wp_enqueue_script()时,依赖项参数的意义是什么?
例如,当我执行以下操作时:
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>';它工作正常,并显示“脚本已排队”。
在读取了文档之后,似乎当您为要加入队列的脚本指定依赖项的句柄时,它将在查询它之前对这些依赖项进行排队。但是,情况似乎并非如此。这都是怎么回事?
发布于 2013-03-20 11:39:58
尝尝这个。您必须在适当的时间调用wp_enqueue_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代替它。
发布于 2013-03-20 13:10:07
请使用要使用的文件和钩子:
wp_enqueue_scripts公共/模板/主题admin_enqueue_scripts管理界面login_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' );
}https://wordpress.stackexchange.com/questions/91592
复制相似问题