Иногда может возникнуть необходимость разрешать доступ к части материалов на страницах сайта только зарегистрированным пользователям, т.е.  имеющих зарегистрированный аккаунт на вашем сайте. В этой статье показывается один из вариантов,  как отображать контент только для зарегистрированных пользователей в WordPress.

Код  который приведен ниже позволит нам размещать контент, доступный только тем пользователям, которые вошли  на ваш сайт под своей учетной записью.  Для того, чтобы  отличить  основной контент от, назовем его  «премиум контента»  мы с вами будем использовать некоторый шорткод в качестве обертки «премиального текста».

С помощью функции function is_user_logged_in()   мы будем  проверять,  вошел  пользователь под своей учетной записью или нет,

Далее, для надежности будет лучшим проверить следующе:

  1. Не пустой ли контент?
  2. Не отображается ли он в RSS ленте

 

Добавляем нижеследующий код в  файл  functions.php в файл вашей темы или в файл с таким же названиям движка WordPress вашего сайта, чтобы зарегистрировать определенный нами шорткод с названием   members_only

 

add_shortcode( 'members_only', 'members_only_shortcode' );
function members_only_shortcode( $atts, $content = null )
{
    if ( is_user_logged_in() && !empty( $content ) && !is_feed() )
    {
        return $content;
    }

    return 'Чтобы увидеть данный контент, необходимо войти под своей учетной записью.';
}

После того, как наш шорткод зарегистрирован, вы можете использовать его в своих материалах сайта по как указано ниже:

[members_only]Этот для пользователей, вошедших под своей учетной записью.[/members_only]

Нужно помнить, что данный метод будет действенным,  пока существует  наша функция add_shortcode, добавленная в файл functions.php. Это может произойти при обновлении или смены шаблона сайта, а так же при обновлении версии WordPress. Лучше будет вообще создать собственный плагин с используемой данной функцией, это совсем не сложно.