首页 > 解决方案 > 如果用户未登录,Wordpress 重定向到登录页面

问题描述

我需要强制用户登录才能看到浏览我的网站。对于新用户,应该只允许访问作为my-account我的登录 url 的页面,即example.org/my-account

以下是我到目前为止所做的

 add_action('wp','force_register' ); 
 function force_register() {
    $loggedin = is_user_logged_in();
    $pagename = get_query_var('pagename'); //get current page name

    if(strcmp("my-account",$pagename) != 0){ //if the user is looking at any other page other than my-account page
        if(!$loggedin){ //if the user is not logged in
            wp_safe_redirect( "/my-account", 302 ); //redirect to the login page
            exit; 

        }

}

浏览器无法重定向并抱怨重定向过多

我错过了什么?

标签: wordpresswordpress-themingcustom-wordpress-pages

解决方案


在 WordPress 进行任何路由、处理或处理之前。它在 main() WP 方法中运行,其中 $query_args 被传递给 parse_request(),以及在设置 send_headers()、query_posts()、handle_404() 和 register_globals() 时。这是由您的问题引起的,您可以使用 init 而不是 wp hook。更多关于 wp 钩子的信息。


推荐阅读