Перенаправление WordPress на страницу входа, если пользователь не вошел в систему

#wordpress #wordpress-theming #custom-wordpress-pages

#wordpress #wordpress-тематизация #пользовательские-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; 

        }

}
  

Браузер не может перенаправить и жалуется на слишком много перенаправлений

Чего мне не хватает?

Ответ №1:

Прежде чем WordPress выполнит какую-либо маршрутизацию, обработку или обработку. Он запускается в методе main() WP, в котором $query_args передаются в parse_request(), а также при настройке send_headers() , query_posts(), handle_404() и register_globals() . Это вызвано вашей проблемой, вы можете использовать init вместо wp hook. подробнее о wp hook.