最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

Conditional redirect to several pages

programmeradmin3浏览0评论

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?

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?

Share Improve this question asked Jul 23, 2020 at 20:27 Peter VARGAPeter VARGA 1471 silver badge9 bronze badges
Add a comment  | 

1 Answer 1

Reset to default 1

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/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.

发布评论

评论列表(0)

  1. 暂无评论