我正在构建一个WordPress插件,但是我在管理菜单中的插件选项页面上加载css时遇到了问题。我在http://codex.wordpress.org/Function_Reference/wp_enqueue_style
咨询了该法典这就是我得到的(我通过取出与我的问题无关的所有部分并更改插件名称来简化代码):
<?php
if (!class_exists('My_Plugin')){
class My_Plugin{
public function __construct(){
//add admin page
add_action('admin_menu', array($this, 'my_plugin_menu'));
add_action('admin_init', array($this, 'my_admin_init'));
}
//adds a page in the admin menu under posts
public function my_admin(){
//ensure user is admin
if ( !current_user_can( 'manage_options' ) ) {
wp_die( __( 'You do not have sufficient permissions to access this page.' ) );
}
?>
<div class="wrap">
<?php screen_icon(); ?>
<h1>My Plugin</h1>
</div>
<?php
}
//admin initialization function
public function my_admin_init(){
//register admin page's css
wp_register_style('my_style', plugins_url('my_style.css', __FILE__));
}
//add css files for admin menu()
public function my_admin_enqueue_styles(){
wp_enqueue_style('my_style');
}
//add menu page under posts
public function my_plugin_menu(){
$page = add_submenu_page('edit.php', 'My Plugin', 'My Plugin', 'manage_options', 'my-plugin', array($this, 'my_admin'));
//add css
add_action('admin_print_styles-'.$page, 'my_admin_enqueue_styles');
}
}
//instantiate the class
$mp = new My_Plugin();
}
在my_style.css文件中,我只是卡住了h1{color:red;}
来测试它。选项页面加载正常,但是firebug没有显示css被加载。我很难过。我需要做什么?
答案 0 :(得分:0)
想出来...... 这是一行:
add_action('admin_print_styles-'.$page, 'my_admin_enqueue_styles');
由于我在一个类中做了所有这些,我需要将第二个参数作为数组传递给$ this
add_action('admin_print_styles-'.$page, array($this, 'my_admin_enqueue_styles'));
我是用其他钩子做的,只是错过了,因为在编码中没有这样做。傻我。