Скрывать часть шаблона поста от незарегистрированных пользователей

👍 Научим создавать сайты на WordPress бесплатно за 19 уроков. Подробнее →

На своем туристическом сайте внизу каждого текстового поста я вывожу данные из произвольных полей этого поста (GPS координаты, телефон и адрес сайта описываемого в посте объекта).
Какой код прописать в шаблоне поста, чтобы эти данные скрывались от гостей («Чтобы увидеть контакты, зарегистрируйтесь или войдите!»), но были бы доступны зарегистрированным пользователям?

Шорткоды в данном случае не подходят.

Создай свой первый сайт на WordPress

Kvanto
Оцените автора
Добавить комментарий

  1. tiaurus
    <?php global $user_ID, $user_identity;get_currentuserinfo(); $ruri = $_SERVER['REQUEST_URI']; if (!$user_ID): ?>
        Это увидят незарегистрированные пользователи
    <?php else:?>
        Это увидят зарегистрированные пользователи
    <?php endif;?>
    

    Вставить в single.php в нужном вам месте.

    Ответить
    1. Kvanto автор

      Сработало! Спасибо!

      Ответить
    2. Apathetic

      Tiarus, вместо того, что ты написал, нужно использовать вполне конкретную функцию, предназначенную для решения этой конкретной задачи — is_user_logged_in()

      Ответить
      1. Kvanto автор

        Кстати, столкнулся с этой функцией в чужой теме.
        В шаблоне страницы создания гостевого поста в самом верху стоит эта функция:

        <?php if ( !is_user_logged_in()) { 
        		include (TEMPLATEPATH . '/member.php');
         } else { ?>

        Member.php это кастомный вход и регистрация нового пользователя.

        Подскажите, пожалуйста, как открыть эту страницу абсолютно всем? Если просто удалить этот код, то по адресу этой страницы не грузится вообще ничего.

        Ответить
        1. Apathetic

          Просто уберите условие:

          <?php include (TEMPLATEPATH . '/member.php'); ?>
          Ответить
          1. Kvanto автор

            Пробовал. Не грузится страница.

            Ответить
            1. Apathetic

              Не грузится страница, на которой расположен этот код, или не грузится страница member.php? Просто не показывается, или появляется какая-то ошибка?

              Возможно, причина в том, что вы там еще где-то окончание условия else оставляете, тогда может выскочить синтаксическая ошибка. Чтобы точно сказать, нужно увидеть код страницы.

              Ответить
              1. Kvanto автор

                Точно-точно! В самом низу шаблона закралось коварное

                <?php get_footer(); ?>
                <?php } ?> <!-- user is logged in -->

                Спасибо за наводку!

                Ответить