Wordpress如何只在插件管理页面调用CSS样式和JS脚本文件
插件开发中避免不了要在管理页面调用CSS样式和JS脚本等文件,如果挂载到 Wordpress 钩子 admin_enqueue_scripts 时,会在WP后台全站输出,在插件管理页面外调用这里文件实属资源浪费,因此本文就可以来聊聊如何只在插件管理页面调用CSS样式和JS脚本文件。
首先需要将 add_menu_page() 返回赋值给 $yjw_settings_page_hook 且要全局调用。
add_action('admin_menu', 'yjw_custom_menu_page'); function yjw_custom_menu_page(){ global $yjw_settings_page_hook; //名称可自由定义 $yjw_settings_page_hook = add_menu_page('菜单标题', '菜单名称', 'administrator', 'custompage', 'custom_menu_page', plugins_url('myplugin/images/icon.png'), 6); }
接着在 admin_enqueue_scripts 钩子调用CSS或JS文件时加个判断:
add_action('admin_enqueue_scripts', 'yjw_scripts_styles'); function yjw_scripts_styles($hook){ global $yjw_settings_page_hook; if( $yjw_settings_page_hook != $hook ) return; wp_enqueue_style("yjw_options_panel_stylesheet", plugins_url("static/css/options-panel.css", dirname(__FILE__)), false, "1.0", "all"); wp_enqueue_script("yjw_options_panel_script", plugins_url("static/js/options-panel.js", dirname(__FILE__)), false, "1.0"); wp_enqueue_script('common'); wp_enqueue_script('wp-lists'); wp_enqueue_script('postbox'); }