0
votes

In wordpress i want a different homepage for logged-in users and those who are logged-out (simple changing the redirect url when somebody clicks on the title of my website). Is there a way of doing this by adding a code snippet in my themes functions.php? I tried:

add_filter('get_the_permalink','my_permalink_redirect');
function my_permalink_redirect($permalink) {
if( is_user_logged_in() ) { 
global $post;
    if ($post->ID == 1) {
        $permalink = 'http://localhost/homepage-for-logged-users';
    }
    }
    return $permalink;
}

unfortunately it doesn't work and it would be unhandy to change the function from localhost to my domain name when i upload the site to a live hosting. can somebody give me some advice? Thanks!

edit:I got it working with the pluging "login with ajax" where I could define redirects after logins and I putted this snippet in my functions.php.

// Redirect users who arent logged in and on a 404 to the home page for logged out users
function login_redirect() {

    // Check to see if user in not logged in and on the home page for logged users
    if(!is_user_logged_in() && is_404()) {
          // If user is, Redirect to home page for logged out users.
           wp_redirect(home_url('home-logged-out'));
           exit;
}

}
   // add the block of code above to the WordPress template
add_action( 'wp', 'login_redirect' );

*I made the pages for logged-in users private so logged-out users will see 404. Not a very clean method, but it works for now...

1

1 Answers

0
votes

Set your default home page to the page logged in users should see.

Add this code to functions.php:

add_action('init', 'redirect_user');
// for users not logged in
function redirect_user(){
    if( !is_user_logged_in() ) {
        wp_redirect( 'http://www.YourSite.com/SomePage'); 
        exit;
    }
}

Logged in users will see what they should see, and those not logged in will be redirected.