限制管理员的Wordpress管理员选项

时间:2012-09-22 13:57:53

标签: wordpress-plugin

我认为这将是一件容易的事,但很多时间过去了,但仍然没有结果。

我正在创建一个Wordpress插件,如果用户是管理员,该插件应该只出现在仪表板中。我将我的钩子包装在is_admin()方法中,但当我以一个用户身份登录时,我仍然看到了菜单。

难道不是那么容易吗?

这是一个代码,除了从注释部分下方开始注册插件...未显示的所有内容只是正在执行其工作的函数...

if( is_admin ){ 

add_action('admin_menu', 'ppm_talentexpo_add_page');
add_action('admin_menu', 'ppm_expos_submenu');

} // end is_admin

function ppm_talentexpo_add_page() {
    $mypage = add_menu_page('Talent Expo', 'Talent Expos', 2, 'ppmtalentexpo', 'jwg_talentexpo_options_main_page', '/wp-admin/images/media-button-music.gif' , 21);
    add_action( "admin_print_scripts-$mypage", 'jwg_ppmtalentexpo_admin_head' );
} // end function

1 个答案:

答案 0 :(得分:1)

在条件中调用is_admin时,看起来你遗漏了括号 尝试

if( is_admin() ){
    add_action('admin_menu', 'ppm_talentexpo_add_page');
    add_action('admin_menu', 'ppm_expos_submenu');
}


此外,如果您没有使用较旧的WordPress安装,add_menu_page允许您指定WordPress将检查的功能。这让WordPress可以管理是否显示该项目 因此,您可以定义自定义功能(或重用现有功能),菜单应该自行处理。

add_action('admin_menu', 'ppm_talentexpo_add_page');
add_action('admin_menu', 'ppm_expos_submenu');

function ppm_talentexpo_add_page() {
    $mypage = add_menu_page('Talent Expo', 'Talent Expos', 'my_custom_talent_expos_capability', 'ppmtalentexpo', 'jwg_talentexpo_options_main_page', '/wp-admin/images/media-button-music.gif' , 21);
    add_action( "admin_print_scripts-$mypage", 'jwg_ppmtalentexpo_admin_head' );
}