Описание auth_{$object_type}_meta_{$meta_key}
— Filter
Хук auth_{$object_type}_meta_{$meta_key} позволяет управлять доступом к метаданным определенного типа объектов в WordPress. Он срабатывает при попытке получить метаданные объекта и позволяет настроить, имеют ли пользователи права на их чтение или изменение
Примеры использования
Пример ограничения доступа к метаданным для определенного типа объектов:
add_filter('auth_post_meta_my_meta_key', function($allowed, $object_id) {
if (!current_user_can('edit_posts')) {
return false;
}
return $allowed;
});
В этом примере доступ к метаданным ‘my_meta_key’ разрешен только пользователям с правами редактирования постов
Пример запрета доступа к метаданным пользователя:
add_filter('auth_user_meta_my_meta_key', function($allowed, $object_id) {
if (get_current_user_id() != $object_id) {
return false;
}
return $allowed;
});
Здесь доступ к метаданным ‘my_meta_key’ разрешен только самому пользователю
Пример динамического управления доступом к метаданным в зависимости от роли пользователя:
add_filter('auth_term_meta_my_meta_key', function($allowed, $object_id) {
$user = wp_get_current_user();
if (in_array('administrator', (array) $user->roles)) {
return true;
}
return false;
});
В этом примере доступ к метаданным ‘my_meta_key’ разрешен только администраторам
— Лучшие практики
– Использование
Используйте этот хук, когда необходимо контролировать доступ к метаданным объектов в зависимости от прав пользователя
– Производительность
Хук может незначительно повлиять на производительность, так как он выполняется при каждом запросе метаданных
– Предупреждения
Следите за тем, чтобы условия проверки прав не вызывали избыточных запросов к базе данных
Альтернативы
Тип: function
Функция для получения метаданных с учетом прав доступа
Используйте эту функцию, если хотите получить метаданные с проверкой прав доступа без использования хуков