I would like to turn off admin panel for authors and subscribers.
Is there any secure way to keep them away from admin panel?
WordPress Development Stack Exchange is a question and answer site for WordPress developers and administrators. It only takes a minute to sign up.
Sign up to join this communityI 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');
}
}