Описание функции WP_User::add_cap()
Функция WP_User::add_cap() добавляет возможность (capability) пользователю, что позволяет управлять его правами доступа в WordPress. Это используется, когда необходимо предоставить пользователю или роли дополнительные права, не изменяя их базовую роль.
Функция используется в процессе настройки прав доступа для кастомных ролей и пользователей.
Параметры
$capability
Тип: string
Обязательный: Да
Описание: Название возможности, которую нужно добавить пользователю
Возможные значения:
$grant
Тип: bool
Обязательный: Нет
По умолчанию: 1
Описание: Флаг, указывающий, следует ли добавлять возможность (по умолчанию true)
Возможные значения:
0: 1
1:
Возвращаемое значение
Тип: bool
Описание: Возвращает true при успешном добавлении возможности, false в противном случае
Возможные значения:
• true — возможность успешно добавлена
• false — возможность не добавлена, например, если она уже существует
Примеры использования
Базовый пример добавления возможности редактирования постов пользователю
$user = new WP_User(1);
$user->add_cap('edit_posts');
// Теперь пользователь с ID 1 может редактировать записи
Пользователь должен существовать
Пример добавления возможности без ее немедленного предоставления
$user = new WP_User(1);
$user->add_cap('manage_options', false);
// Возможность manage_options добавляется, но не предоставляется
Пользователь все равно сможет получить эту возможность позже
Безопасность
Валидация входных данных: Параметры проходят валидацию внутри функции
Санитизация: Входные данные очищаются для предотвращения инъекций
Рекомендации: Проверяйте, что пользователь имеет соответствующие права перед добавлением возможностей
— Связанные функции
Удаляет возможность у пользователя
Проверяет, имеет ли текущий пользователь определенную возможность
— Примечания
– Ограничения
Необходимо помнить о том, что возможности могут зависеть от ролей пользователя
– Частые проблемы
- Ошибка при добавлении уже существующей возможности
- Проблемы с правами при недостатке прав у текущего пользователя