我认为这将是一件容易的事,但很多时间过去了,但仍然没有结果。
我正在创建一个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
答案 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' );
}