I have a link in my WP website Account link. I would like this to work normally for logged out users. However for Logged-in users i would like this link to take them to another page url.

I have tried:

 function my_logged_in_redirect_sub() {
    if ( is_user_logged_in() &&($_GET['account'] )  
) {
        wp_redirect( get_permalink( 15498 ) );//the redirect page id

 add_action( 'template_redirect', 'my_logged_in_redirect_sub' );

The $_GET['url'] doesn't work

Question: How can i target a specific URL with PHP?


1 Answer 1


Here are 2 examples which you will need to modify slightly to get it working for your specific needs.

add_action( 'admin_init', 'redirect_non_logged_users_to_specific_page' );

function redirect_non_logged_users_to_specific_page() {

if ( !is_user_logged_in() && is_page('add page slug or ID here') && $_SERVER['PHP_SELF'] != '/wp-admin/admin-ajax.php' ) {

wp_redirect( 'http://www.example.dev/page/' ); 

Put this in your child theme functions file, change the page ID or slug and the redirect url.

You could also use code like this:

add_action( 'template_redirect', 'redirect_to_specific_page' );

function redirect_to_specific_page() {

if ( is_page('slug') && ! is_user_logged_in() ) {

wp_redirect( 'http://www.example.dev/your-page/', 301 ); 

You can add the message directly to the page or if you want to display the message for all non logged in users, add it to the code.


  • ok perfetct, the 1st example worked! (I had to remove the ! since i want this to work for Logged in users) What i was missing is that is_page('add page slug or ID here') is actually detecting the Link, i thought it was indicating the page the user is currently in. Thanks!
    – xbass540
    Dec 6, 2018 at 11:35
  • Glad, that it helped you.
    – dado
    Dec 6, 2018 at 11:43

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.