Вы можете делать эти вещи с is_user_logged_in()
и is_front_page()
. Если это не так, вы можете использовать wp_redirect()
, чтобы перенаправить пользователя на домашнюю страницу.
Предполагая, что страница забытого пароля является "страницей", вы также можете использовать is_page()
в своей логике.
Вам нужно будет подключить его к действию, чтобы оно срабатывало достаточно поздно, чтобы позволить проверить страницу, но достаточно рано, чтобы все еще безопасно перенаправить пользователя (т.е. до отправки заголовков). template_redirect
идеально подходит для этого.
add_action( 'template_redirect', 'my_frontpage_redirect' );
function my_frontpage_redirect() {
if ( ! is_user_logged_in() ) {
if ( ! is_front_page() && ! is_page( 'my-password-reset' ) ) {
wp_redirect( home_url() );
exit();
}
}
}