重定向未登录的用户仅在特定页面上

时间:2019-08-20 20:28:46

标签: wordpress

我想将未登录WordPress的用户从A页重定向到B页。

我已经尝试过关于StackOverflow的所有答案,但是它们都是几年前写的,没有一个起作用。

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.com/sign-in/', 301 );
        exit;
    }
}

当添加到functions.php中时,没有任何反应。

2 个答案:

答案 0 :(得分:0)

尝试一下:

function redirect_to_specific_page(){
    global $post;
    if ( !is_user_logged_in() && $post->ID == your page id ) {
       wp_redirect( 'http://www.example.com/sign-in/', 302 );
       exit;
    }
}
add_action( 'template_redirect', 'redirect_to_specific_page' );

答案 1 :(得分:0)

您的代码没有错。如果您正确指定了“ slug”,则您的代码应该可以使用。您也可以尝试以下代码。

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') ) {

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