繁体   English   中英

首先将私人页面重定向到登录,然后在 Wordpress 中显示页面

[英]redirect private page to login first then display page in Wordpress

我有几个从我的公共页面链接的私人页面。 默认情况下,当未登录的用户单击这些链接之一时,他们会获得 404 页面。 我希望他们获得一个登录页面,然后继续访问他们请求的页面。

Pete 的重定向插件很棒,但它希望在登录后转到每个用户/角色的特定指定页面。 我想继续访问他们要求的页面。

有什么建议? 谢谢,有钱

这是正确的做法

add_action('wp', 'redirect_private_page_to_login');

function redirect_private_page_to_login(){

    global $wp_query;

    $queried_object = get_queried_object();

    if ($queried_object->post_status == "private" && !is_user_logged_in()) {

        wp_redirect(home_url('/login?redirect='.get_permalink($queried_object->ID)));

    } 
}

我对 Tu Bui 的回答有一些问题。 这是一个改进的版本。

add_action( 'wp', 'redirect_private_page_to_login' );
function redirect_private_page_to_login(){
    $queried_object = get_queried_object();
    if (
        isset( $queried_object->post_status ) &&
        'private' === $queried_object->post_status &&
        ! is_user_logged_in()
    ) {
        wp_safe_redirect( wp_login_url( get_permalink( $queried_object->ID ) ) );
        exit;
    }
}

这是一个小插件中的相同代码: https : //github.com/wearerequired/private-page-login

if(is_user_logged_in()){
echo '<a href="link to pvt page"> pvt page </a>';
} else{
echo '<a href="link to Login page"> login to continue </a>';
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM