Как скрыть информацию от гостей в WordPress?
Сегодня я раскажу о функции current_user_can() в WordPress, c помощью которой можно скрыть информацию от гостей, или наоборот, показывать ее только им. Я не любитель теории, поэтому сразу же перейдем к практике.
И все же пара строк, как ей пользоваться (level_10 - уровень админа):
-
<?php if (current_user_can(‘level_10?)) { ?>
-
// нужная информация, будет показываться
-
// только администратору
-
<?php } ?>
-
<?php if (!current_user_can(‘level_10?)) { ?>
-
// нужная информация, будет показываться всем,
-
// кроме администратора (т.к. в начале функции - отрицание)
-
<?php } ?>
Вместо level_10, понятное дело, может быть другой уровень. Теперь мы знаем как пользоваться данной функцией!
Права пользователей (стандартные в WordPress):
level_0 - подписчик
level_1 - участник
level_2 - автор
level_3 - level_7 - редактор
level_8 - level_10 - администратор
А теперь примеры.
Меню для администратора:
-
<?php if (current_user_can(‘level_10′)) { ?>
-
<ul>
-
<li><a href="/wp-admin/post-new.php">Написать новый пост</a>
-
<li><a href="/wp-admin/page-new.php">Создать новую станицу</a>
-
<li><a href="/wp-admin/edit.php">Управление</a>
-
<li><a href="/wp-admin/theme.php">Дизайн</a>
-
<li><a href="/wp-admin/edit-comments.php">Комментарии</a>
-
<li><a href="/wp-admin/options-general.php">Настройки</a>
-
</ul>
-
<?php } ?>
В список можно добавить нужные вам ссылки и разместить код на главной странице.
Вывод для гостей:
-
<?php if (current_user_can(‘level_0′)) { ?>
-
// информация для гостей
-
<?php } ?>
В основном это нужно на блогах, где используется регистрация (или несколько ведущих).
На этом пока все, если покапаться в функции current_user_can, то можно найти еще много интересного. Так же я писал о выводе трэкбэков только админстратору.
- Самоучитель манимейкинга
В поисках той самой кнопки - Блог Волотко Дмитри
- это нормально ©

Спасибо, думаю пригодится в ближайшем будущем.
Полезно. Только я всегда поступал несколько иначе. Я вывожу ссылку, к примеру, на редактирование топика, в футер. На индексе, или в тегах - при нажатии, откроется первый сверху топик, если на странице топика - то понятно, он и откроется. Ссылка эта видна только при живой сессии администратора.
Волотко Дмитрий, да, у меня, например, в каждом посте так же есть ссылка вида post.php?action=edit&post=id, но там другая функция.
Спасибо за инфу. Хотел пару кнопок кинуть для облегчения работы админу - но все руки не доходили. Искать некогда было. А все так просто оказалось. А это для всех версий WP (интересует 2.5 и 2.6)
bugor, да, если не ошибаюсь, то для всех.
А зачем если не секрет? Зачем прятать что то от гостей?
классно, спасибо большое за информацию
2profy
можно прятать, а можно наоборот показывать только им или, к примеру, соавторам блога, или порадовать только администраторов в том числе и себя чем-либо) вариантов много
2profy: Прятать или показывать что-то только определённым группам пользователей бывает очень удобно.
Например, чтобы организовать внутренний блог компании на том же движке, что и внешний блог (просто в отдельном разделе, ссылку на который не показывать обычным пользователям). А ещё можно для администраторов автоматически скрывать неважные им части сайта, хотя это на любителя.
2bishai: Спасибо за материал. Мелочь, а вовремя
P.S. В коде
if (current_user_can(‘level_10?)) {и тому подобном апострофы съехали. Попробуйте проверить используемую автотипографику.