sonyps4.ru

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

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

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

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

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

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

// Тут код рекламы, яваскрипт и тд.

Такой фокус проворачивается и с кодами что выше, то есть вместо echo и содержимого в скобках, ставите закрывающий и открывающий тег 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 "";} } add_shortcode("forreg", "only_reg_info");

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

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

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

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

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

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

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

Function add_new_quicktags() { if (wp_script_is("quicktags")) : ?> if (QTags) { QTags.addButton("forreg", "Для зарег.", "", "", "Для зарег.", "", 1); }

Загрузка...