Есть моменты, когда вы хотите, чтобы страница была доступна только для пользователей, которые вошли в ваш менеджер пользователей WordPress . Например, если у вас есть область только для членов вашего сайта, предназначенная только для зарегистрированных пользователей , вам необходимо убедиться, что страница не видна никому из пользователей, которые еще не вошли в систему.
WordPress имеет встроенную функцию, которая позволяет вам легко управлять пользователями и ролями для этих пользователей. Используя менеджер пользователей WordPress, вы можете определять разные роли для ваших пользователей, но все они смогут войти в WordPress, и не имеет значения, какой роли они назначены.
Поскольку вы используете встроенный менеджер пользователей WordPress, вы можете использовать функции WordPress, чтобы проверить, вошел ли пользователь в систему или нет .
Эта функция WordPress называется is_user_logged_in () . Эта функция будет возвращать значение true или false, если пользователь в данный момент вошел в систему и работает так же, как код ниже
<?php if ( is_user_logged_in() ) { echo 'Welcome, registered user!'; } else { echo 'Welcome, visitor!'; } ?>
Если пользователь вошел в систему, то появится сообщение Добро пожаловать, зарегистрируйте пользователя! если пользователь не вошел в систему, то вы получите сообщение Добро пожаловать, посетитель .
Теперь мы можем использовать эту функцию для создания шаблонов страниц, которые будут гарантировать, что страница будет видна только пользователям, которые вошли в систему.
Сначала нам нужно создать новый шаблон страницы, что легко сделать, создав новый файл PHP в папке вашей темы и добавив следующие комментарии в начало файла.
<?php /* Template Name: Admin Area for logged in users */ ?>
Когда этот файл будет сохранен, вы увидите новый шаблон страницы в раскрывающемся списке шаблонов страниц, теперь вы можете создавать новые страницы и назначать их для использования этого шаблона страницы.
Теперь мы можем добавить код, чтобы убедиться, что только зарегистрированные пользователи могут видеть эту страницу. На вашей странице шаблона добавьте следующий код.
if ( !is_user_logged_in()) { get_template_part('login'); exit; } get_header();
Этот код будет гарантировать, что пользователь вошел в систему, если пользователь не вошел в систему и пытается получить доступ к этой странице, то он отобразит часть шаблона темы входа. Затем мы выходим из кода, чтобы WordPress не запускал остальную часть кода на этой странице шаблона.
Вы также можете использовать другую технику и вместо отображения шаблона входа в систему вы перенаправляете пользователя на страницу входа в свою область только для членов .
if ( !is_user_logged_in()) { wp_redirect( get_page_link(10) ); exit; } get_header();
Этот код делает то же самое, чтобы проверить, вошел ли пользователь в систему, но он не будет отображать страницу шаблона входа, вместо этого мы перенаправляем на страницу с помощью функции get_page_link () и передаем идентификатор страницы страницы входа для участников. Эта функция возвращает ссылку на страницу, которую мы затем используем в качестве параметра для функции WordPress wp_redirect ( ).
Это все, что нам нужно сделать, чтобы перенаправить незарегистрированных пользователей обратно на страницу входа только для участников вашего сайта.