Сегодня довелось работать на сайте, для которого требовалось создать контент, видимый только для залогиненных пользователей. Это была страница, которая и в меню показывалась только залогиненным юзерам. И как оказалось, сделать это довольно просто:
- Нужно создать шаблон для страницы с определёнными условиями,
- Создать копию меню для залогиненных пользователей,
- Прописать пару строчек кода в файле functions.php.
А теперь подробнее. Для начала создаём шаблон для страницы, которая будет видна только избранным. Делается это так: копируем файл, отвечающий за отображение страницы (по умолчанию – page.php) и называем её так, чтобы было понятно, что это шаблон страницы для залогиненных юзеров, например template-only-members.php. Затем открываем его в текстовом редакторе и в самом верху добавляем строчку, которая определит этот файл, как шаблон.
/* Template Name: Template Only For Members */
Где Template Only For Members – это название шаблона, которое будет отображаться при выборе его на странице редактирования… страницы. Имя может быть любым.
Ещё необходимо добавить вот такой код в тело страницы:
if ( is_user_logged_in() ) { // Контент страницы } else { // То, что будет показано вместо контента // незарегистрированным пользователям }
Теперь можно применить шаблон к нужной странице.
Теперь можно добавить страницу в меню. Чтобы не зарегистрированные пользователи не видели этого пункта меню, нужно сделать так, как описано в этой статье.
Тут могла быть ваша реклама.