In my application a user needs to 1stlogin and is then able to access the website.

There are 3 different user roles in use on my site

  1. administrator
  2. editor
  3. contributor

User can login from


No login from any theme template.

I have found this code, but it doesn't work

function my_login_redirect_contributors() {
  if ( current_user_can('contributor') ){
      return 'url-to-redirect-to';

add_filter('login_redirect', 'my_login_redirect_contributors');

Note: I do not want to use plugin like Peter's Login Redirect. I want to achieve it by customizing wp core code with a filter.

  • Why is the code you posted not working? – mor7ifer Jan 31 '12 at 10:45
  • @m0r7if3r Ops its just for an idea – Ajay Patel Jan 31 '12 at 10:46
  • I gathered. What specifically about it is failing, because that code looks good to me. – mor7ifer Jan 31 '12 at 10:48

You're using the filter wrong. If you got more than one @param, then you have to state them when adding the filter.

function wpse40745_redirect_on_login( $redirect_to, isset( $_REQUEST['redirect_to'] ), $user )
    # uncomment the following line if it's not working and replace $user->roles[0] with something that works
    // echo '<pre>'; print_r( $user ); echo '</pre>'; exit;

    if ( in_array( $user->roles[0], array( 'contributer', 'whatever_other_role ) ) )
        return home_url();

    return $redirect_to;
add_filter( 'login_redirect', 'wpse40745_redirect_on_login', 20, 3 );

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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