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