2012-09-22 199 views
0

我认为这将是一件容易的事情,但很多时间都用,仍然没有结果了。制约WordPress管理选项管理员

我的插件,创建一个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

看起来你打电话的时候离开了括号有条件的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管理员显示或不显示项目。
所以,你可以自定义一个capabilty(或重用现有的),菜单应该自己照顾自己。

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'); 
} 
+0

谢谢,贾里德。我忘了这是一种方法。我做了改变。但它并没有解决我的问题,因为我正在使用自定义角色,WP正在忽略它们。我去Google找到另一个解决方案。对于其他人,Jared的解决方案确实会取消订户,作者和编辑的访问权限。 – jgravois