5

I am currently trying to setup a redirect so that my admin users are redirected to a page other than the dashboard within the wordpress administrator interface.

If I leave out my conditional, the redirect works, but then it also redirects non-administrator users as well and I don't want this.

Here is the code I have within functions.php

add_filter('login_redirect', 'dashboard_redirect');
function dashboard_redirect($url) {
  global $current_user;
  get_currentuserinfo();
  $level = (int) $current_user->wp_user_level;

  if ( $level > 10  ) {
    $url = 'wp-admin/edit.php';
  }

  return $url;
}     
1
  • 1
    How about accepting answers that certainly saved you time as correct? Commented Nov 25, 2011 at 23:47

4 Answers 4

7

You should not use Userlevels. Userlevels have been replaced in WP 2.0 and have been officially deprecated since 3.0

add_filter( 'login_redirect', 'dashboard_redirect' );
function dashboard_redirect( $url ) {
    if ( current_user_can( 'manage_options' ) ) {
         $url = esc_url( admin_url( 'edit.php' ) );
    }

    return $url;
}    

Will do what you want.

4

If you want to redirect to another page any time they try to access the dashboard, and not just after login, use something like this:

add_action( 'current_screen', function() {
    $screen = get_current_screen();
    if ( isset( $screen->id ) && $screen->id == 'dashboard' ) {
        wp_redirect( admin_url( 'edit.php?post_type=my-post-type' ) );
        exit();
    }
} );
3

Yan also add this simple action to the 'login_form' (see this site for more detail).
For example, to redirect to dashboard, you can use:

add_action('login_form', 'redirect_after_login');
function redirect_after_login() {
    global $redirect_to;
    if (!isset($_GET['redirect_to'])) {
        $redirect_to = get_option('siteurl') . '/wp-admin/index.php';
    }
}
1
  • 1
    this worked great for me. Commented Apr 23, 2013 at 15:55
0

Try wrapping the function with this current_user condition:

if (current_user_can('administrator')) {
// Your Redirect Code Here
}

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.