我正在尝试为自定义设置页面加入脚本和样式。我只想在设置页面上排队我的脚本。
我已使用代码段创建了自定义设置页面
add_action( 'admin_menu', 'supernut_shipping_admin_menu' );
function supernut_shipping_admin_menu() {
add_menu_page( __('Способы доставки'), 'Способы доставки', 'manage_options',
'supernut/shipping-methods', 'supernut_shipping_admin_page',
'dashicons-tickets', 6 );
}
我要实现这一目标
add_action('admin_enqueue_scripts', 'supernut_enqueue_admin_scripts_and_styles');
function supernut_enqueue_admin_scripts_and_styles() {
if (is_admin('supernut/shipping-methods')) {
// Enqueue my script and styles
}
}
如何查看当前页面是我在admin中的自定义设置页面?
if (is_admin('supernut/shipping-methods'))
-不起作用。
答案 0 :(得分:1)
我找到了这段代码here:
执行此操作的方法是使用'admin_enqueue_scripts'挂钩对所需文件进行排队。该钩子将通过一个与加载的当前页面相关的$hook_suffix
:
function my_admin_enqueue($hook_suffix) {
if($hook_suffix == 'appearance_page_theme-options') {
wp_enqueue_script('my-theme-settings', get_template_directory_uri() . '/js/theme-settings.js', array('jquery'));
wp_enqueue_style('my-theme-settings', get_template_directory_uri() . '/styles/theme-settings.css');
?>
<script type="text/javascript">
//<![CDATA[
var template_directory = '<?php echo get_template_directory_uri() ?>';
//]]>
</script>
<?php
}
}
add_action('admin_enqueue_scripts', 'my_admin_enqueue');
答案 1 :(得分:1)
还有另一种方法,它更简单一些,因为我们不需要知道$hook_suffix
的名称。相关动作均为here。注意,当我们使用双引号时,PHP将在其中包含变量:"admin_print_styles-$hook_suffix"
。
add_action('admin_menu', function() {
$hook_suffix = add_menu_page (
'Test Hook Suffix',
'HSuffix',
'manage_options',
'hook_suffix',
function(){ echo '<h1>menu</h1>'; },
'dashicons-welcome-learn-more',
6
);
add_action("admin_print_styles-$hook_suffix", 'my_admin_css');
add_action("admin_print_scripts-$hook_suffix", 'my_admin_js');
});
function my_admin_css(){
wp_enqueue_style('my-theme-css', get_template_directory_uri() . '/test.css');
}
function my_admin_js(){
wp_enqueue_script('my-theme-js', get_template_directory_uri() . '/test.js', array('jquery'));
}