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

Если на 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]
Комментарии (2)
  1. 1
    Вадим
    @

    А плагин посоветуете какой-то?

  2. 2
    Вадим
    @

    Спасибо код работает!

    А как сделать чтоб контент прятался, и был написан текст данная часть материала доступна зарегистрированным (и ссылка на регистрацию)?

Ваш комментарий