Описание auth_{$object_type}_meta_{$meta_key}_for_{$object_subtype}
— Filter
Хук auth_{$object_type}_meta_{$meta_key}_for_{$object_subtype} позволяет управлять доступом к метаданным определенного типа объекта и подтипа. Он срабатывает при проверке прав на чтение или запись метаданных и позволяет настроить, кто может видеть или изменять эти данные
Примеры использования
Пример ограничения доступа к метаданным для определенных пользователей:
add_filter('auth_post_meta_custom_key_for_post_type', function($allowed, $object_id, $meta_key, $object_type, $object_subtype) {
if(current_user_can('editor')) {
return false;
}
return $allowed;
});
В этом примере доступ к метаданным с ключом ‘custom_key’ запрещен для пользователей с ролью ‘editor’
Пример разрешения доступа к метаданным для определенной роли:
add_filter('auth_post_meta_custom_key_for_post_type', function($allowed, $object_id, $meta_key, $object_type, $object_subtype) {
if(current_user_can('administrator')) {
return true;
}
return $allowed;
});
Здесь мы разрешаем доступ к метаданным с ключом ‘custom_key’ только для администраторов
Пример изменения логики доступа в зависимости от значения метаданных:
add_filter('auth_post_meta_custom_key_for_post_type', function($allowed, $object_id, $meta_key, $object_type, $object_subtype) {
if(get_post_meta($object_id, 'some_other_key', true) === 'specific_value') {
return true;
}
return $allowed;
});
В этом примере доступ к метаданным ‘custom_key’ разрешается, если метаданные ‘some_other_key’ имеют значение ‘specific_value’
— Лучшие практики
– Использование
Лучше всего использовать этот хук, когда необходимо управлять доступом к метаданным в зависимости от ролей пользователей или других условий
– Производительность
При использовании этого хука следует учитывать, что слишком сложная логика может повлиять на производительность, особенно если проверка выполняется часто
– Предупреждения
Будьте осторожны, чтобы не закрыть доступ к важным метаданным для пользователей, которым он необходим
Альтернативы
Тип: filter
Этот хук позволяет управлять доступом к метаданным без учета подтипа объекта
Используйте его, если вам не нужно различать доступ по подтипам объектов