有条件地重定向到多个页面

时间:2020-07-23 作者:Peter VARGA

假设我有这些WordPress页面:

  • page-A
  • page-B
  • page-C
和已发布页面page-main.

My question:

客户端只能查看和访问page-main 它最终是虚拟的-它不存在。访问此page-main 页面应重定向到one 在上述A-C页中,取决于一些对该问题不重要的条件
我如何才能实现它?

1 个回复
最合适的回答,由SO网友:mozboz 整理而成

因此,您需要在Wordpress输出任何内容之前完成此操作,否则您将无法发送重定向。

实现这一点的一种方法是template_redirect 挂钩,记录在此处:https://codex.wordpress.org/Plugin_API/Action_Reference/template_redirect

文档页面中的示例或多或少正是您想要的。为了回答您的问题,我对其进行了一些编辑:

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\' );
您需要将其添加到函数中。php或插件。

相关推荐

Changing auth_redirect() page

我知道auth_redirect() 检查用户是否已登录,如果未登录,则将其重定向到登录页面,然后在成功后返回上一页。我需要我的网站上的功能,我有。例如,我希望其中一个页面只能由登录的用户访问,如果他们试图访问该页面,则需要先登录,然后成功返回该页面。我的电脑上有以下代码function.php.if ( is_page(\'user_only\') && ! is_user_logged_in() ) { auth_redirect(); } 问题是我有