隐藏后,URL会显示WordPress菜单页面

时间:2019-04-14 02:27:45

标签: wordpress

我正在使用以下代码从用户帐户隐藏菜单;

function hide_menu_from_user () {
    if ( !current_user_can( 'administrator' ) ) {
        remove_menu_page( 'edit-comments.php' ); 
        remove_menu_page( 'wpcf7' ); 
        remove_menu_page( 'tools.php' ); 
        remove_menu_page( 'vc-welcome' ); 
    }   
}
add_action( 'admin_menu', 'hide_menu_from_user', 999 );

现在,这些菜单没有显示,但是如果您使用URL并将其粘贴,则页面即将出现,例如:

如果我使用此URL,则可以看到联系表单插件,但是我将其从用户帐户仪表板菜单中隐藏了,对吧?

www.mysite.com/wp-admin/admin.php?page=wpcf7

我该如何解决?上面的代码有什么问题吗?

1 个答案:

答案 0 :(得分:1)

请尝试以下代码:-

function hide_menu_from_user () {
    if ( !current_user_can( "administrator") ) {
      remove_admin_url_access( "edit-comments.php" );
      remove_admin_url_access( "wpcf7" );
      remove_admin_url_access( "tools.php" );
      remove_admin_url_access( "vc-welcome" );
    }   
}
add_action( "admin_menu", "hide_menu_from_user", 999 );

if(!function_exists('remove_admin_url_access') ) {
    function remove_admin_url_access($menu_to_hide){
        global $pagenow;
        global $parent_file;

        remove_menu_page( $menu_to_hide );

        if($menu_to_hide == $pagenow || $menu_to_hide == $parent_file  ) {
            do_action( "admin_page_access_denied" );
           wp_die( __( "Sorry, you are not allowed to access this page." ), 403 );
        }
    }
}