igor-fedorov
@igor-fedorov
Full Stack разработчик

Как скрыть страницу от гостей в WordPress?

Всем привет! Как сделать так, что если в посте есть определённый шорткод, например, [hide], то весь контент прячется и выводится сообщение о необходимости логина на сайте? Вариант с оборачиванием контента в шорткод не подойдёт - нужно спрятать абсолютно весь контент.
  • Вопрос задан
  • 1453 просмотра
Пригласить эксперта
Ответы на вопрос 2
@ipokos
Исходя из описания задачи, попробуйте посмотреть в сторону функции is_user_logged_in(). Проверяет авторизирован пользователь или нет (возвращает true если да и false, если нет).
Обернуть код вывода самого поста, в файле wp-content/theme/single.php или wp-content/theme/template-parts/content.php в зависимости какую часть нужно скрыть.
Если правть код не вариант, то остаются плагины
Ответ написан
@TNAT
век живи, век учись
Есть такой плагин User Access Manager
Позволяет скрывать контент для групп пользователей.

Если нужно выводить что то например только в постах определенной категории и только определенной группе, то я сделал так в content-single.php:

Показать форму в постах категорий 44 и 57 только залогиненым покупателям и администраторам
<?php if(in_category( array( 44,57))and(is_user_logged_in ())and(current_user_can ('customer') || current_user_can('administrator'))): ?>
<?php echo do_shortcode( '[contact-form-7 id="1234" title="Contact form 1"]' ); ?>
<?php endif;?>

Показать всплывающее окно о необходимости регистрации в постах категорий 44 и 57 только подписчикам
<?php if(in_category( array( 44,57))and(is_user_logged_in ())and(current_user_can ('subscriber'))): ?>
<?php echo do_shortcode( '[sg_popup id=1]' ); ?>
<?php endif;?>
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы