X
  • Дизайн та розробка сайту
  • Дизайн і створення сайтів. Розробка тем для WordPress. Створення Landing Page.
  • office@gnatkovsky.com.ua
  • @vgnat
  • Написати мені
Замовити послугу

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

Приклад
  • 2024-11-21
  • 14284 переглядів

  • Дизайн та розробка сайту

Доброго времени суток 🙂

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

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

Кому может такое пригодится? Скрыть контент от незарегистрированных пользователей иногда необходимо для того чтобы расширить пользовательскую базу своего сайта. Так же, если у Вас например платная регистрация и та часть материала которая продается должна быть доступна только тем, кто купил доступ. Еще можно немного обратить способ и например, для простых посетителей показывать рекламу, а те кто вошел на сайт не будут видеть ее. В общем все зависит от Вашей фантазии и сложившихся нужд.

Для того чтобы скрыть например часть содержимого внутри темы WordPress, то нужно ту часть которая будет скрываться от не авторизованных пользователей, заключить вот в такой код:

<?php if ( is_user_logged_in() ) { 
echo "Содержание для зарегистрированных  пользователей"; } 
else { 
echo "Чтобы увидеть текст, Вам нужно авторизоваться"; } ?>

Это условие, которое говорит, что если пользователь вошел в аккаунт, то показывать содержимое из второй строки, если нет то из четвертой. Если Вы хотите просто скрывать и не выводить больше никаких сообщений, то есть не авторизованные будут видеть пустоту, то удалите третью и четвертую строку. Получится так:

<?php if ( is_user_logged_in() ) { 
echo "Содержание для зарегистрированных  пользователей"; } 
?>

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

 
<?php if ( !is_user_logged_in() ) { 
echo "Сюда код рекламы или что-то еще"; } 
?>

Мы добавили восклицательный знак перед функцией, которая теперь служит отрицанием. Внутри данных кодов все добавляется по правилам PHP. Если Вам сложно это, то можете разорвать код и вставлять обычным способом, например если надо добавить javascript .

<?php if ( !is_user_logged_in() ) { ?>
	//	Тут код рекламы, яваскрипт и тд.
<?php } ?>

Такой фокус проворачивается и с кодами что выше, то есть вместо echo и содержимого в скобках, ставите закрывающий и открывающий тег PHP, а между ними все что угодно.

?> Сюда что угодно <?php            

Вот например еще самый первый код из статьи.

<?php if ( is_user_logged_in() ) { ?>
// Содержание для зарегистрированных  пользователей"; 
<?php } else { ?>
// Чтобы увидеть текст, Вам нужно авторизоваться
<?php } ?>

Думаю, тут все понятно. Теперь давайте рассмотрим случай, когда нужно скрыть часть записи, то есть часть текста Вашей статьи. Тут я предлагаю использовать шорткоды. Мы создадим функцию с шорткодом и при написании статьи Вы просто будете заключать в этот шорткод часть текста, который будет скрываться. Так же в конце будет небольшой бонус который облегчит Вам использование данного шорткода.

Чтобы создать шорткод, Вам нужно открыть файл пользовательских функций из Вашей темы WordPress - function.php и добавить в него код приведенный ниже. Делать это нужно в самом конце, перед закрывающим тегом PHP.

function only_reg_info($atts,$content = null) {
	 if ( is_user_logged_in() && !is_null( $content ) && !is_feed() ){
	 return $content; } else {
	 return '<p>Чтобы увидеть текст, Вам нужно авторизоваться</p>';}
}
add_shortcode( 'forreg', 'only_reg_info' );

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

В шестой строке указываем имя шорткода - forreg. Если хотите можете поменять на свое, но тогда не забудьте его менять и вдругих кодах которые будут указаны ниже в статье, дабы все продолжало работать, а Вы в гневе не писали мне что - НЕ РАБОТАЕТ!!!.

Теперь при написании статьи, Вы просто заключаете в шорткод forreg нужный текст, который спрячется.

[forreg]
//текст который спрячется для не авторизованных посетителей.
[/forreg]

Небольшой бонус

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

Для этого в том же function.php, после функции с шорткодом добавьте еще вот такую функцию:

function add_new_quicktags() {
   if (wp_script_is('quicktags')) :
?>
    <script type="text/javascript">
      if (QTags) { 
        QTags.addButton( 'forreg', 'Для зарег.', '[forreg]', '[/forreg]', 'Для зарег.', '', 1 );
      }
    </script>
<?php endif;
}
add_action( 'admin_print_footer_scripts', 'add_new_quicktags' )

Теперь в админке в Текстовом редакторе записи, появится кнопка с названием - Для зарег. Я специально выделил, что в текстовом редакторе, а не в визуальном, потому как чтобы добавить кнопку и в визуальный редактор, нужно пройти все круги преисподней и это еще одна огромная статья, которую когда-то я, может и напишу :). Так что нужно переключится на текстовый и там уже ее нажимать.

визуальный текстовый редактор

Там увидите в начале вот такую кнопочку:

Кнопка шорткод для зарег

Перед тектом что нужно скрыть нажимаете кнопку один раз - ставится открывающий тег:

Открывающий шорткод

После жмете еще раз и ставится закрывающий тег.

Закрывающий шорткод

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

Лично я очень часто пользуюсь этой возможностью при выполнении заказов и данные способы не раз меня выручали. Если они выручат и Вас, значит я не зря написал такую большую статью.

На этом все, спасибо за внимание. 🙂

Якщо Вам була корисна моя праця, можете фінансово підтримати сайт або відключити блокувальник реклами, що займе 2 хвилини :)

Хочу підтримати фінансово Хочу відключити блокувальник

Оцініть статтю
  1. 5
  2. 4
  3. 3
  4. 2
  5. 1
Проголосовало: 15, в среднем: 4.7 из 5
Читайте також

Deprecated: Функція WP_Query викликана з аргументом, який вважається застарілим з версії 3.1.0! Вираз caller_get_posts застарілий. Використовуйте ignore_sticky_posts. in /var/www/vhosts/gnatkovsky.com.ua/gnatkovsky.com.ua/public/wp-includes/functions.php on line 6078