Send Logged-In Members From the Homepage to Their Page
Redirects logged-in users who visit the homepage to a members area, dashboard or account page, while guests still see the normal homepage.
Opens WPIDE on
Code
// Path members are sent to.
$wpide_member_home = '/members/';
// Users with this capability are not redirected.
$wpide_member_home_skip = 'edit_posts';
add_action( 'template_redirect', function () use ( $wpide_member_home, $wpide_member_home_skip ) {
if ( ! is_front_page() || is_paged() || ! is_user_logged_in() || current_user_can( $wpide_member_home_skip ) ) {
return;
}
$target = home_url( $wpide_member_home );
// Only redirect to a page that exists, and never to the homepage itself.
if ( untrailingslashit( $target ) === untrailingslashit( home_url( '/' ) ) || ! url_to_postid( $target ) ) {
return;
}
wp_safe_redirect( $target, 302 );
exit;
} );
Notes
Nothing happens until the target page exists. Users with the capability in $wpide_member_home_skip (editors and up by default) still see the homepage.
How to add this snippet
- Install WPIDE on your WordPress site (it is free) and open Code Snippets.
- Use snippet above adds it from the library in one click. Or copy the code into a new snippet with the same code type.
- It is added inactive: review the code and settings, then switch it on.