Вопрос или проблема
Используя плагины, такие как “Members” или “Capability Manager”, я не вижу такой возможности, как manage_tags
. Разве не должно быть что-то подобное manage_categories
?
ИЗМЕНЕНИЕ: Кажется, я разобрался. manage_terms предназначено для всех таксономий. Специфической возможности для тегов нет, но я могу создать такую, если захочу. Это позволит мне настроить роль, которая может редактировать только категории, но не теги, и наоборот.
ПРИМЕЧАНИЕ: Мне поставили низкий балл. Если вы ставите мне низкий балл, пожалуйста, укажите причину. Спасибо.
Вам следует ознакомиться со страницей кодекса о ролях и возможностях, чтобы увидеть список стандартных возможностей, которые существуют. Вы всегда можете создать свои собственные пользовательские возможности.
Если вы обратитесь к функции create_initial_taxonomies()
в wp-includes/taxonomy.php
в ядре WordPress, таксономия тегов постов регистрируется с следующими возможностями:
- manage_post_tags
- edit_post_tags
- delete_post_tags
- assign_post_tags
Ответ или решение
Ваша наблюдение о наличии возможности manage_categories
, но отсутствии manage_tags
для пользователей, вполне обосновано. Давайте разберемся, почему это происходит и что вы можете с этим сделать.
В WordPress действительно нет отдельной возможности manage_tags
, как и у других таксономий. Вместо этого для работы с тегами используются более общие возможности для управления таксономиями. Если вы посмотрите на код WordPress, то увидите, что функции и возможности, связанные с тегами, регулируются через таксономии.
Как вы уже отметили, способность manage_terms
охватывает управление всеми таксономиями, включая теги. Это означает, что если пользователь имеет эту возможность, он может управлять как тегами, так и категориями.
Если вам нужно создать более специфичную систему прав, где пользователи могут редактировать только категории, а не теги (или наоборот), вы можете создать собственные возможности. Вот как вы можете это сделать:
-
Создайте свои собственные возможности. В WordPress имеется возможность добавить кастомные возможности через код. Это можно сделать с помощью функции
add_cap()
для определенных ролей.Пример кода, который добавляет возможность управления тегами для роли администратора:
function add_custom_capabilities() { $role = get_role('administrator'); $role->add_cap('manage_tags'); } add_action('admin_init', 'add_custom_capabilities');
-
Настройте разрешения. С помощью плагинов, таких как "Members" или "Capability Manager", вы можете настраивать созданные возможности для разных ролей. Это позволит вам четко управлять доступом к тегам и категориям.
-
Изучите документацию. Подробности о ролях и возможностях в WordPress можно найти в Codex и в документации WordPress о таксономиях.
Таким образом, отсутствие явной возможности manage_tags
не является ошибкой — это просто особенность системы управления правами. Но вы можете легко создать свои собственные возможности для учета специфики вашего сайта.