我正在尝试在管理区域排队/打印脚本。但他们似乎没有出现。
add_action(\'admin_init\', function() {
add_meta_box(\'portfolio-meta\', \'Details\', \'portfolio_metabox_details\', \'portfolio\');
wp_register_script(\'jqeury-validate\', \'http://ajax.aspnetcdn.com/ajax/jquery.validate/1.8.1/jquery.validate.min.js\');
wp_enqueue_script(\'jquery-validate\');
wp_register_script(\'ae-admin\', get_bloginfo(\'template_directory\') . \'/js/admin.js\', array(\'jquery\', \'jquery-validate\'));
wp_enqueue_script(\'ae-admin\');
wp_localize_script(\'ae-admin\', \'WpAjax\', array(
\'AjaxUrl\' => admin_url(\'admin-ajax.php\')
));
wp_register_style(\'ae-validate\', get_bloginfo(\'template_directory\') . \'/css/validate.css\');
wp_enqueue_style(\'ae-validate\');
});
但是我的剧本(
admin.js
) 似乎没有打印出来。我甚至试着把它们放在“init”而不是“admin\\u init”中,但我还是看不到我的脚本。。。为什么会这样?如何调试?
最合适的回答,由SO网友:Chris_O 整理而成
使用admin_enqueue_scripts
钩子代替admin_init
注意:您应该使用尽可能专门针对管理页面的挂钩。e、 g.:
- Plugins: 使用
admin_print_scripts-{plugin-page}
挂钩Themes: 使用admin_print_scripts-{theme-page}
挂钩(其中{theme-page}
是您在add_theme_page()
电话) - Custom Post-Type Edit Page: 使用
admin_print_scripts-edit.php
钩子,
对于自定义帖子类型,请在函数内部执行以下操作:
global $typenow;
if( \'portfolio\' == $typenow ) {
// wp_enqueue_script() calls go here
}
(h/t
t31os)
SO网友:Chip Bennett
我刚注意到你的add_action()
呼叫不正确。您必须向其传递回调,而不是函数定义。
您有:
add_action(\'admin_init\', function() {
// function definition here
});
相反,您应该:
function mytheme_enqueue_admin_scripts() {
// register/enqueue code goes here
}
add_action( \'hook_name\', \'mytheme_enqueue_admin_scripts\' );