我使用以下脚本调用page-about.php 样板但它实际上不起作用。脚本无处执行:
// Load maps scripts
function maps_scripts()
{
// If query if current Page is not wp-login-php or admin page
if ( is_page_template(\'page-about.php\') ) {
wp_register_script(\'gmapsapi\', \'http://maps.google.com/maps/api/js?sensor=false\', array(), \'1.0.0\', true);
wp_enqueue_script(\'gmapsapi\');
wp_register_script(\'gmaps\', get_template_directory_uri() . \'/js/gmaps.min.js\', array(), \'1.0.0\', true);
wp_enqueue_script(\'gmaps\');
wp_register_script(\'map\', get_template_directory_uri() . \'/js/map.js\', array(), \'1.0.0\', true);
wp_enqueue_script(\'map\');
}
}
add_action(\'init\', \'maps_scripts\');
我也试过
is_page() 但它不起作用。当我删除
if 语句脚本加载到所有页面上。
最合适的回答,由SO网友:Max Yudin 整理而成
使用wp_enqueue_scripts 而是打开init. 这将确保已加载模板。
add_action(\'wp_enqueue_scripts\', \'maps_scripts\');
或者尝试使用
get_page_template_slug() 而不是
is_page_template:
$tmp = get_page_template_slug($post_id); // provide page/post ID
if(\'page-about.php\' == $tmp) {
// enqueue scripts here
}
请注意,在将脚本排入队列之前,不需要注册脚本。只需传递
wp_register_script 直接发送到
wp_enqueue_script (请参见
Code Reference).