Как скрыть информацию на сайте от посетителей без плагинов

Здравствуйте, сегодня поговорим о том как скрыть код, информацию от обычных пользователей и показывать ее для определенных ролей, например только администратору сайта.

Скачать исходники для статьи можно ниже

Для определения роли пользователя будем использовать условный тег (функцию):

current_user_can( $capability, $args );

, где:

$capability — (обязательный параметр) название возможности или роли. Список возможностей и ролей можно посмотреть тут:

http://codex.wordpress.org/Roles_and_Capabilities

Основные роли пользователей:

Administrator (администратор)
Editor (редактор)
Author (автор)
Contributor (участник)
Subscriber (подписчик)

$args — (дополнительный параметр, т.е. можно не указывать) любые дополнительные аргументы, которые могут понадобиться, например, ID поста, страницы.

Чтобы понять рассмотрим примеры использования вышеуказанных параметров функции current_user_can.

 

if ( current_user_can('administrator') ) {
 echo 'если пользователь администратор';
}

 

if ( current_user_can('edit_post', 123) ) {
 echo 'если текущий пользователь может редактировать запись с id=12'.
}

А теперь перейдем непосредственно к практике скрытия информации на сайте.

Практика.

Давайте рассмотрим пример скрытия от обычных посетителей (не имеющим роли: администратор и др.) вашего сайта следующего кода, который позволяет узнать, сколько времени уходит на загрузку вашего WordPress сайта и сколько при этом требуется обращений к Базе Данных:


<?php echo get_num_queries(); ?> queries in <?php timer_stop(1); ?> seconds.

Где можно разместить данный код — ну например в подвале сайта (footer.php), то есть заходим в панель управления сайтом на wordpress, в левом меню выбираем пункт «Внешний вид» и его подпункт «Редактор», далее в справа в списке шаблонов выбираем — footer.php и в его коде в нужное нам место вставляем данный код.

Давайте продолжим и добавим условие — что только администратор сайта может видеть результат данного кода.

<?php if (current_user_can('administrator')) { ?>
<?php echo get_num_queries(); ?> queries in <?php timer_stop(1); ?> seconds.
<?php } ?>

Все готово!!!

Введите свой email адрес для того, чтобы подписаться на мой блог:


knopkisoc

Добавить комментарий