Показываем контент только зарегистрированным пользователям

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

Реализуется это следующим образом. В файл functions.php вставляем следующий код:

add_shortcode('member', 'member_check_shortcode');

function member_check_shortcode( $atts, $content = null ) {
	if ( is_user_logged_in() && !is_null( $content ) && !is_feed() )
		return $content;
		return '';
}

После этого в тексте статьи используем следующую конструкцию:

[member]
Это текст, который будет показан только зарегистрированным пользователям.
[/member]

Обновление 06.05.10

Теперь рассмотрим обратную ситуацию – когда нужно показывать текст только незарегистрированным пользователям.

В файл functions.php добавляем следующую функцию:

add_shortcode('guest', 'guest_check_shortcode');

function guest_check_shortcode( $atts, $content = null ) {
	if ( !is_user_logged_in() && !is_null( $content ) && !is_feed() )
		return $content;
		return '';
}

И в тексте статьи используем такую конструкцию:

[guest]
Это текст, который будет показан только незарегистрированным пользователям.
[/guest]

—–
В специализированном интернет-магазине можно купить конструктор “Лего”. В каталоге представлен большой ассортимент детских игрушек LEGO. Действует дисконтная система.

  0 Мне понравилось!

Koммeнтapии (16):

  1. Остановился чтобы сказать спасибо за такую дельную функцию! )

  2. А боты будут видеть этот текст?
    Если нет, то как сделать так чтобы незарегитсрированные не видели, а боты видели?

    • А боты будут видеть этот текст?

      Конечно нет.

      Если нет, то как сделать так чтобы незарегитсрированные не видели, а боты видели?

      Знаю только один вариант – скрыть с помощью CSS. Однако, в этом случае, во-первых, текст можно будет увидеть через просмотр исходного кода страницы, во-вторых, поисковики не поощряют скрытие подобным образом текста для целей SEO.

  3. Дмитрий Мацкевич

    Это я добавку к вопросу
    Есть плагин определения юзеров на сайте WP-UserOnline
    Может оттуда взять инфу о ботах и удасться им показывать?

  4. Приветствую Вас, Dimox.

    Вопрос по теме.

    Задача: К примеру, в конце поста с ссылкой на закачку файла есть такая предварительная запись:

    Зарегистрируйтесь и увидите ссылку на файл…
    Далее – ССЫЛКА (обрамленная, соответственно в [member]…[/member])

    Вопрос:

    Как сделать, чтобы после регистрации запись Зарегистрируйтесь… убралась?
    Это возможно?

    • Дополнил статью примером для вашего случая.

      • Mama mia! Вы просто молодчина, Dimox!!! Большое Вам, человеческое СПАСИБО!
        С наступающим Великим днем Вас! Только благодаря этой дате – 9мая, мы с Вами радуемся жизни… несмотря ни на что!
        Удачи Вам во всех начинаниях!

  5. Привет, Dimox!

    Очередной вопрос, если я Вам еще не надоел… ответьте пожалуйста.
    Есть такая удобная “примочка”, как [spoiler]. Нельзя ли сделать ее кнопкой в редакторе, в админке наряду с другими? Для Вас не составит труда помочь в этом?

  6. Может вы так же знаете способ как закрыть целую категорию от не зарегистрировавшихся в виде хака?

    То есть необходимо, что бы гостей перебрасывало редиректом на страницу авторизации при попытки открыть закрытую рубрику или посты из нее..

Oтпpaвить кoммeнтapий

Облако тегов