首页 >

实现 WordPress 登录查看网站

如果网站内容只希望注册用户浏览,隐藏其他所有人,访问者可以跳转到注册页面,而无需登录访问。

将以下代码添加到当前主题函数模板中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 ) !.*/', '', $url ) !== preg_replace( '/\?.*/', '', wp_login_url() ) && ! $bypass ) {// 防止缓存nocache_headers();// 页面链接跳转$page = 页面链接跳转;/// 执行302跳转wp_safe_redirect( $page, 302 );// 跳转到默认登录页///// wp_safe_redirect( wp_login_url(), 302 );exit;}}}

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