#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.