Кому может такое пригодится? Скрыть контент от незарегистрированных пользователей иногда необходимо для того чтобы расширить пользовательскую базу своего сайта. Так же, если у Вас например платная регистрация и та часть материала которая продается должна быть доступна только тем, кто купил доступ. Еще можно немного обратить способ и например, для простых посетителей показывать рекламу, а те кто вошел на сайт не будут видеть ее. В общем все зависит от Вашей фантазии и сложившихся нужд.
Для того чтобы скрыть например часть содержимого внутри темы 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);
}