我正在使用以下代码从用户帐户隐藏菜单;
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
我该如何解决?上面的代码有什么问题吗?
答案 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 );
}
}
}