I want all my users (contributors and authors too) but the admin to be redirected to the homepage if they try to view mysite.com/wp-admin/.
Contributors and Authors must be able to add and edit posts as usual, along with others they’ve to be forced to be redirected…
I’ve already removed the link to the dashboard…
I’ve also tried some plugins but the one that gets closer (Remove Dashboard Access) redirects to main page but prevents the contributors and authors from adding, editing and deleting posts.
Thanks!
5 Answers
I been using this code for a while I think it was originaly on a plugin called wp block admin but this works. You just have tho change the required compatibility so that it does what you need, look at this
$required_capability = 'edit_others_posts';
$redirect_to = '';
function no_admin_init() {
// We need the config vars inside the function
global $required_capability, $redirect_to;
// Is this the admin interface?
if (
// Look for the presence of /wp-admin/ in the url
stripos($_SERVER['REQUEST_URI'],'/wp-admin/') !== false
&&
// Allow calls to async-upload.php
stripos($_SERVER['REQUEST_URI'],'async-upload.php') == false
&&
// Allow calls to admin-ajax.php
stripos($_SERVER['REQUEST_URI'],'admin-ajax.php') == false
) {
// Does the current user fail the required capability level?
if (!current_user_can($required_capability)) {
if ($redirect_to == '') { $redirect_to = get_option('home'); }
// Send a temporary redirect
wp_redirect($redirect_to,302);
}
}
}
// Add the action with maximum priority
add_action('init','no_admin_init',0);