TransWikia.com

Conditional redirect to several pages

WordPress Development Asked by Peter VARGA on December 17, 2021

Suppose I have these WordPress pages:

  • page-A
  • page-B
  • page-C

and a published page page-main.

My question:

The clients see and access only page-main which is in the end virtual – it doesn’t exist. Accessing this page-main page should redirect to one of the above mentioned pages A-C, depending on some conditions which are not important for this question.
How can I achieve it?

One Answer

So you need this to happen before Wordpress has output anything at all, otherwise you won't be able to send a redirect.

A way to achieve this is with the template_redirect hook, documented here: https://codex.wordpress.org/Plugin_API/Action_Reference/template_redirect

The example from that docs page is more or less exactly what you want. I've edited it a little bit for your question:

function my_page_template_redirect() {
    if ( is_page( 'page-main' ) ) {
        if ( $some_condition ) {
            wp_redirect( home_url( $pageA ) );
        } else { 
           ... other caeses here with redirects to other pages
        }
    }
}

add_action( 'template_redirect', 'my_page_template_redirect' );

You'd need to add that to your functions.php or a plugin.

Answered by mozboz on December 17, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP