Показываем контент только зарегистрированным пользователям
Если на 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. Действует дисконтная система.
Остановился чтобы сказать спасибо за такую дельную функцию! )
А можно ли сделать обратный маневр: зарегистрированным, не показывать какой-то текст?
Перед
is_user_logged_in()добавьте символ восклицательного знака, в результате должно получится то, что хотите.А боты будут видеть этот текст?
Если нет, то как сделать так чтобы незарегитсрированные не видели, а боты видели?
Конечно нет.
Знаю только один вариант – скрыть с помощью CSS. Однако, в этом случае, во-первых, текст можно будет увидеть через просмотр исходного кода страницы, во-вторых, поисковики не поощряют скрытие подобным образом текста для целей SEO.
Это я добавку к вопросу
Есть плагин определения юзеров на сайте WP-UserOnline
Может оттуда взять инфу о ботах и удасться им показывать?
Возможно, но я в этом не разбираюсь.
Приветствую Вас, Dimox.
Вопрос по теме.
Задача: К примеру, в конце поста с ссылкой на закачку файла есть такая предварительная запись:
Зарегистрируйтесь и увидите ссылку на файл…
Далее – ССЫЛКА (обрамленная, соответственно в [member]…[/member])
Вопрос:
Как сделать, чтобы после регистрации запись Зарегистрируйтесь… убралась?
Это возможно?
Дополнил статью примером для вашего случая.
Mama mia! Вы просто молодчина, Dimox!!! Большое Вам, человеческое СПАСИБО!
С наступающим Великим днем Вас! Только благодаря этой дате – 9мая, мы с Вами радуемся жизни… несмотря ни на что!
Удачи Вам во всех начинаниях!
Пожалуйста =)
Привет, Dimox!
Очередной вопрос, если я Вам еще не надоел… ответьте пожалуйста.
Есть такая удобная “примочка”, как [spoiler]. Нельзя ли сделать ее кнопкой в редакторе, в админке наряду с другими? Для Вас не составит труда помочь в этом?
Для этого есть плагины.
Спасибо большое, Дмитрий!
По Вашей ссылочке поставил то, что и нужно было – Advanced-spoiler, переделав немного картинки + и -, заменив на
▲и▼. Все работает отлично!Может вы так же знаете способ как закрыть целую категорию от не зарегистрировавшихся в виде хака?
То есть необходимо, что бы гостей перебрасывало редиректом на страницу авторизации при попытки открыть закрытую рубрику или посты из нее..
Не знаю, к сожалению.