使用通配符的WP重定向

时间:2020-08-06 作者:Ben Michael Oracion

我正在使用wp\\u redirect()限制已注销用户的访问权限,并将他们重定向到登录页面。这是我的代码,它工作得很好。

function loggedout_post_redirect(){
    if ( !is_user_logged_in() && is_single() ) {
        wp_redirect( home_url() . \'/login/\' ) ;
        exit();
    }
}
add_action ( \'template_redirect\', \'loggedout_post_redirect\' );
但是,如果我想重定向访问此特定URL的所有已注销用户,该怎么办?

1 个回复
SO网友:Kevin

如果不使用WordPress中的查询变量,可以生成正则表达式。

以下是一个示例:

function loggedout_user_redirect(){

    if ( ! is_user_logged_in() ) {
        $regex = \'~/users/(.*)~\';
        $url   = $_SERVER[\'REQUEST_URI\'];
        
        preg_match( $regex, $url, $matches );
        
        if ( isset( $matches[1] ) && \'\' !== trim( $matches[1] ) ) {
            wp_redirect( site_url( \'/login\' ) );
            exit();
        }
    }
}
add_action ( \'template_redirect\', \'loggedout_user_redirect\' );