问题是,您正在加载jQuery之前加载脚本。
Do not print scripts directly.
您应该(注册然后)使用提供的API将它们排队。jQuery已经是一个注册的脚本,所以您可以将其排队(比如admin_enqueue_scripts
挂钩)。
但是,只有在加载需要jQuery的自定义脚本时,才需要加载jQuery,在这种情况下,应该将自定义脚本排队,并将jQuery作为依赖项添加。WordPress将按照正确的顺序处理脚本的加载:
add_action(\'admin_enqueue_scripts\',\'wptuts53021_load_admin_script\');
function wptuts53021_load_admin_script( $hook ){
wp_enqueue_script(
\'wptuts53021_script\', //unique handle
get_template_directory_uri().\'/admin-scripts.js\', //location
array(\'jquery\') //dependencies
);
}
旁白使用
get_template_directory_uri()
而不是
get_bloginfo()
使用已通过的
$hook
(这将是
edit.php
,
post.php
,
post-new.php
等)和
get_current_screen()
确定您所在的页面是否需要加载脚本。仅在实际需要时加载脚本例如(Codex示例):
function my_enqueue($hook) {
//Load only on edit.php pages
//You can use get_current_screen to check post type
if( \'edit.php\' != $hook )
return;
wp_enqueue_script( \'my_custom_script\', plugins_url(\'/myscript.js\', __FILE__) );
}
add_action( \'admin_enqueue_scripts\', \'my_enqueue\' );