0

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

我正在创建一个 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
4

1 回答 1

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' );
}
于 2012-09-22T14:26:22.473 回答