I would like to turn off admin panel for authors and subscribers.
Is there any secure way to keep them away from admin panel?
I would like to turn off admin panel for authors and subscribers.
Is there any secure way to keep them away from admin panel?
Create a functionality plugin and use this if you want to completely block the access to the Admin panel:
/**
* Hide the admin bar in the front end
*/
add_filter('show_admin_bar', '__return_false');
/**
* Redirects Authors and Subscribers to the site front page using: get_home_url()
*/
add_action('admin_init','block_users_wpse_53675');
function block_users_wpse_53675()
{
if( !current_user_can( 'delete_pages' ) ) // blocks authors, contributors and subscribers
{
wp_redirect( get_home_url(), 301 );
exit;
}
}
Or use this other one if you want the users to have access only to their profile page:
/**
* Redirect Authors and Subscribers to the site front page
* Except if viewing the Profile page
*/
add_action('admin_init','block_users_wpse_53675');
function block_users_wpse_53675()
{
global $pagenow;
if( 'profile.php' == $pagenow )
return;
if( !current_user_can('delete_pages') )
{
wp_redirect( get_home_url(), 301 );
exit;
}
}
/**
* Hide all menus from the Admin panel
* Except the profile item
*/
add_action('admin_menu', 'remove_admin_menus_wpse_53675', 999);
function remove_admin_menus_wpse_53675()
{
if( !current_user_can('delete_pages') )
{
remove_menu_page('index.php');
remove_menu_page('edit.php');
remove_menu_page('upload.php');
remove_menu_page('link-manager.php');
remove_menu_page('edit.php?post_type=page');
remove_menu_page('edit-comments.php');
remove_menu_page('tools.php');
}
}