Flector

Как скрыть часть записи от незарегистрированных пользователей?

Скрытие текста от незарегистрированных пользователей

Часто у вебмастеров возникает необходимость спрятать какую-то часть текста записи или страницы от незарегистрированных пользователей. Как правило, для решения этой задачи устанавливается какой-нибудь специальный плагин. Однако, можно обойтись совсем без плагинов, так как реализация шорткода [hide][/hide], скрывающего текст от незарегистрированных пользователей, довольно таки простая. Вам необходимо добавить в файл functions.php вашей темы следующий код:

//шорткод скрытия части текста записи start
function wph_hide_text($atts, $content = null) {
    if (is_user_logged_in() && !is_null($content) && !is_feed())
        {return wpautop($content);}
    else {
        $loginlink = wp_login_url();
        $reglink = wp_registration_url();
        $msg = '<p style="background:#fcf8e3;padding:5px;">
        Для просмотра скрытого содержимого вы должны 
        <a href="'.$loginlink.'">войти</a> или 
        <a href="'.$reglink.'">зарегистрироваться</a> на сайте.</p>';
        return $msg;
    }
}
add_shortcode('hide', 'wph_hide_text');
//шорткод скрытия части текста записи end

Использовать шорткод необходимо так:

[hide]Этот текст будет скрыт.[/hide]

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


Комментарии (1 комментарий)
  1. Абай:

    Спасибо большое! Мне очень помогли, все работает!

Написать комментарий

Для вставки кода воспользуйтесь кнопкой "Код". Используйте предпросмотр!