在 WordPress 中重定向用户登录 URL 的最佳方式?

Best way to redirect user to login URL in WordPress?

我有许多页面要求我的用户在访问它们时必须登录。

我已将我的登录页面重新映射到我的网站。com/login。因此,目前对于任何需要用户登录的页面,我会使用以下重定向它们。

//If user is not logged in...
if ( !is_user_logged_in() ) {
    
    wp_redirect( wp_login_url() ); 
}

我的问题是,以上是否足以确保未登录用户始终被重定向并且不会导致“太多重定向”错误。

这里有 2 个示例,请检查您是否可以添加到 function.php 文件

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') && $_SERVER['PHP_SELF'] != '/wp-admin/admin-ajax.php' ) {

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

将其放入 functions.php 文件并更改页面 ID 或 slug 和重定向 url。

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.dev/your-page/', 301 ); 
  exit;
    }
}