Описание функции current_user_can()
Функция current_user_can() используется для проверки, имеет ли текущий пользователь определенные права доступа или роли. Она позволяет управлять доступом к различным функциям и ресурсам на сайте, что критически важно для безопасности. Функция может использоваться в темах, плагинах и пользовательских скриптах для контроля доступа к контенту и функционалу.
Эта функция работает на основе системы ролей и прав WordPress, что позволяет гибко настраивать доступ для разных типов пользователей.
Параметры
$capability
Тип: string
Обязательный: Да
Описание: Название права доступа, которое необходимо проверить
Возможные значения:
0: edit_posts
1: delete_posts
2: publish_posts
3: manage_options
4: read
Возвращаемое значение
Тип: bool
Описание: Возвращает true, если пользователь имеет указанное право, иначе false
Возможные значения:
• true — пользователь имеет право
• false — пользователь не имеет право
Примеры использования
Базовый пример проверки прав пользователя
if (current_user_can('edit_posts')) {
echo 'У вас есть право редактировать записи';
} else {
echo 'У вас нет права редактировать записи';
}
Выводит сообщение в зависимости от прав пользователя
Проверка прав на управление опциями в панели администратора
if (current_user_can('manage_options')) {
// Код для администраторов
} else {
// Код для обычных пользователей
}
Используется для ограничения доступа к админским функциям
Безопасность
Валидация входных данных: Функция проверяет только строковый параметр
Санитизация: Нет необходимости в санитизации, так как параметр уже валиден
Рекомендации: Необходимо использовать в контексте, где доступ к функции может быть ограничен
— Связанные функции
Проверяет права конкретного пользователя
Добавляет право пользователю или роли
— Примечания
– Ограничения
Не проверяет права для пользователей, не вошедших в систему
– Частые проблемы
- Возвращает false для пользователей с недостаточными правами
- Неправильное использование прав может привести к уязвимостям