Redirect Admin User in Dashboard

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.

Read More

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;
}     

Related posts

Leave a Reply

4 comments

  1. 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.

  2. 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';
        }
    }
    
  3. 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();
        }
    } );