Как скрыть информацию от гостей в WordPress?

Сегодня я раскажу о функции current_user_can() в WordPress, c помощью которой можно скрыть информацию от гостей, или наоборот, показывать ее только им. Я не любитель теории, поэтому сразу же перейдем к практике.

И все же пара строк, как ей пользоваться (level_10 - уровень админа):

  1. <?php if (current_user_can(‘level_10?)) { ?>
  2. // нужная информация,  будет показываться
  3. // только администратору
  4. <?php } ?>

  1. <?php if (!current_user_can(‘level_10?)) { ?>
  2. // нужная информация,  будет показываться всем,
  3. // кроме администратора  (т.к. в начале функции - отрицание)
  4. <?php } ?>

Вместо level_10, понятное дело, может быть другой уровень. Теперь мы знаем как пользоваться данной функцией!

Права пользователей (стандартные в WordPress):

level_0 - подписчик
level_1 - участник
level_2 - автор
level_3 - level_7 - редактор
level_8 - level_10 - администратор

А теперь примеры.

Меню для администратора:

  1. <?php if (current_user_can(‘level_10′)) { ?>
  2. <ul>
  3. <li><a href="/wp-admin/post-new.php">Написать новый пост</a>
  4. <li><a href="/wp-admin/page-new.php">Создать новую станицу</a>
  5. <li><a href="/wp-admin/edit.php">Управление</a>
  6. <li><a href="/wp-admin/theme.php">Дизайн</a>
  7. <li><a href="/wp-admin/edit-comments.php">Комментарии</a>
  8. <li><a href="/wp-admin/options-general.php">Настройки</a>
  9. </ul>
  10. <?php } ?>

В список можно добавить нужные вам ссылки и разместить код на главной странице.

Вывод для гостей:

  1. <?php if (current_user_can(‘level_0′)) { ?>
  2. // информация для гостей
  3. <?php } ?>

В основном это нужно на блогах, где используется регистрация (или несколько ведущих).

На этом пока все, если покапаться в функции current_user_can, то можно найти еще много интересного. Так же я писал о выводе трэкбэков только админстратору.

Акция - ссылка каждому!

Получать обновления:

комментарий: 8

  1. Свалка идей пишет:

    Спасибо, думаю пригодится в ближайшем будущем.

  2. Полезно. Только я всегда поступал несколько иначе. Я вывожу ссылку, к примеру, на редактирование топика, в футер. На индексе, или в тегах - при нажатии, откроется первый сверху топик, если на странице топика - то понятно, он и откроется. Ссылка эта видна только при живой сессии администратора.

  3. bishai пишет:

    Волотко Дмитрий, да, у меня, например, в каждом посте так же есть ссылка вида post.php?action=edit&post=id, но там другая функция.

  4. bugor пишет:

    Спасибо за инфу. Хотел пару кнопок кинуть для облегчения работы админу - но все руки не доходили. Искать некогда было. А все так просто оказалось. А это для всех версий WP (интересует 2.5 и 2.6)

  5. bishai пишет:

    bugor, да, если не ошибаюсь, то для всех.

  6. profy пишет:

    А зачем если не секрет? Зачем прятать что то от гостей?

  7. Саня пишет:

    классно, спасибо большое за информацию

    2profy
    можно прятать, а можно наоборот показывать только им или, к примеру, соавторам блога, или порадовать только администраторов в том числе и себя чем-либо) вариантов много

  8. jz пишет:

    2profy: Прятать или показывать что-то только определённым группам пользователей бывает очень удобно.
    Например, чтобы организовать внутренний блог компании на том же движке, что и внешний блог (просто в отдельном разделе, ссылку на который не показывать обычным пользователям). А ещё можно для администраторов автоматически скрывать неважные им части сайта, хотя это на любителя.

    2bishai: Спасибо за материал. Мелочь, а вовремя :)

    P.S. В коде
    if (current_user_can(‘level_10?)) {
    и тому подобном апострофы съехали. Попробуйте проверить используемую автотипографику.

ОСТАВИТЬ КОММЕНТАРИЙ

Защищено от спама с помощью Shelvin Time Captcha