WordPress如何设置强制登录否则无法查看网站

前言

image-20210521141424458

如网站内容只希望注册用户浏览,对其他所有人隐藏,浏览者未登录访问直接跳转到登录注册页面,可以用下面的代码实现。

将下面代码添加到当前主题函数模板functions.php中:

代码一 未登录访问网站直接跳转到默认登录页面。

    add_action( 'wp', 'login_access' );
    function login_access() {
        global $pagenow;
        if( !is_user_logged_in() && $pagenow != 'wp-login.php' )
        auth_redirect();
    }

代码二 未登录访问网站,可以302跳转到自定义的页面。

add_action( 'template_redirect', 'zm_force_login' );
function zm_force_login() {
    // 判断登录
    if ( ! is_user_logged_in() ) {
        // 判断HTTPS
        $schema = isset( $_SERVER['HTTPS'] ) && 'on' === $_SERVER['HTTPS'] ? 'https://' : 'http://';
        // 判断站内链接
        $url = $schema . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
        // 添加白名单
        $allowed = apply_filters_deprecated( 'zm_force_login_whitelist', array( array( '允许访问的链接1', '允许访问链接2' ) ), '1.0', 'zm_force_login_bypass' );
        $bypass = apply_filters( 'zm_force_login_bypass', in_array( $url, $allowed ), $url );
        if ( preg_replace( '/\?.*/', '', $url ) !== preg_replace( '/\?.*/', '', wp_login_url() ) && ! $bypass ) {
            // 防止缓存
            nocache_headers();
            // 跳转的页面链接
            $page = '跳转到的页面链接';
            // 执行302跳转
            wp_safe_redirect( $page, 302 );
            // 跳转到默认登录页面
            // wp_safe_redirect( wp_login_url(), 302 );
            exit;
        }
    }
}

注:跳转的页面链接要同时加到白名单中,否则会形成死循环。

代码取自:Force Login

遇事不要慌,加入萝卜头联盟大家庭QQ群(1061186476),互帮互助,提高自己!!还有更多好的赚钱项目等你~~~~

image-20210519160604903

萝卜头联盟,一个谈钱不伤感情的网站!
萝卜头网创联盟 » WordPress如何设置强制登录否则无法查看网站

发表评论

提供最优质的资源集合

立即查看 了解详情