Домой WordPress WordPress: Другое Скрываем контент от незарегистрированных пользователей
2ответ(ов) в теме
Vadim
не в сети 2 месяца
На сайте с 09.02.2015
Участник
Тем 50
Сообщения 228
1
21:20

Здравствуйте!
Возникла у меня потребность реализовать на блоге такую интересную (на мой взгляд) штуку как скрытие контента (или его части) от незарегистрированных пользователей. Ставить целый плагин для такой весьма примитивной задачи не хотелось, поэтому решил найти возможность реализации через код. Решение нашел и хочу поделиться им с вами, возможно, кому-нибудь будет полезно.

Нам понадобятся 2 файла: файл функций и таблицы стилей темы. Открываем файл function.php своей темы и вставляем в самом низу, перед "?>" вот такой код:

//Скрываем контент от незарегистрированных пользователей (здесь можно написать любой комментарий)

function true_logged_in_user_content( $atts, $content = null ) {
if ( is_user_logged_in() && !is_null( $content ) && !is_feed() ) {
return $content;
}
return 'Контент только для зарегистрированных пользователей! a href="#" title="Авторизоваться на сайте" class="rcl-login">Зарегистрируйтесь на сайте</a, чтобы получить доступ к контенту.
</div';
}

add_shortcode( 'member', 'true_logged_in_user_content' );

Обратите внимание, что ссылку на форму авторизации можно и не указывать. Также тег "p" можно заменить на какой-нибудь "H". Тут на любителя. Я не любитель плодить лишние теги заголовков, так как это (на мой взгляд) негативно сказывается на сео. В общем, внутри div-а пишите любой текст и используйте любые хтмл-теги.

Следующим шагом нам надо оформить блок, прописав соответствующие стили. Идем в style.css темы и оформляем так, как считаем нужным. Я сделал так:

.private {display:block; width:100%; height:50px; border: 3px solid #960303; padding: 10px 0; margin: 20px 0;}
.private p {font-family:'Roboto Condensed',sans-serif; font-weight: 500; font-size: 18px; line-height:20px; text-align: center; color: #960303;}
можно и ссылки оформить:
.private a {...}
.private a:hover {...}

И последним шагом надо шорткодом, который мы регистрировали в файле функций выше, закрыть какую-то часть контента в статье. Открываем для редактирования запись и обрамляем нужный фрагмент текста шорткодом "member", т.е. в результате должны получить вот такую конструкцию:

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

Сохраняем, обновляем, проверяем результат. Если установлены плагины кэширования, то обновляем кэш.

PS Не знаю как в сообщении код воспринимался как текст, а не исполнялся, поэтому специально убрал знаки "" в тегах "div" и "a" 🙁

1
Вова (Otshelnik-Fm)
не в сети 2 дня
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18654
2
10:38

Тему перенес - к wp-recall это не имеет отношения

0
Тема закрыта. Публикация новых сообщений запрещена.