如何将未登录用户重定向到 Wordpress 上的登录页面?

How to redirect non logged in users to Login page on Wordpress?

我知道这是一个被问过数百万次的问题,但我现在找不到适合 Wordpress 版本的答案and/or我的特殊情况。

我有一个安装了 Buddypress 的 Wordpress 网站。

我想要那个: - 未登录用户只能看到页面 wp-login.php - 登录用户可以访问整个网站

就是想不通,不可能。要么我更改站点地址或分配页面,要么功能...没有任何效果,一直是错误或 404 页面错误等...

基本上:你到达网站,你没有登录= Wp-Login.php,如果你登录页面"members"

谢谢!

根据您的最终目标(使用 WP 登录页面、自定义登录页面等),有很多不同的方法可以做到这一点。您可以尝试将其添加到主题的 functions.php 文件中:

if ( ( is_single() || is_front_page() || is_page() || is_archive() || is_tax() )
    && ! is_page( 'login' ) && ! is_page('register') && ! is_user_logged_in() ) {
    auth_redirect(); 
}

或者你可以使用插件,Force Login

更新

理论上,你大概可以用这个,只是没有测试过...

if( ! is_page('login') && ! is_page('register') && ! is_user_logged_in() ) {
    auth_redirect(); 
}

就用这个wordpress插件 https://wordpress.org/plugins/restrict-user-access/ 控制谁可以/不能访问您的网站。

如果你用谷歌搜索,你可能会得到大量类似的插件。

看这里

https://wordpress.org/support/topic/how-to-auth_redirect-to-specific-page

<?php
if( !is_user_logged_in() ) {
    wp_redirect('http://somepagehere');
    exit;
}
?>

您也可以将此添加到您的 functions.php 文件中,而不是我之前所说的:

function admin_redirect() {
if ( !is_user_logged_in()) {
   wp_redirect( home_url('/{custom page goes here}/') );
   exit;
}
}
add_action('get_header', 'admin_redirect');

您希望它检查用户当前是否没有尝试登录或注册,如果没有则将他们重定向到您想要的任何页面。

if ( !is_user_logged_in() && !is_page( 'login' ) && ! is_page('register') ) {
   //redirect user, create account with them, do a hoola-hoop
}

一定要在 get_header();

之前将此代码放入您的页面文件中