Почему я вижу возможность manage_categories, но не вижу возможности manage_tags для пользователей?

Вопрос или проблема

Используя плагины, такие как “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 охватывает управление всеми таксономиями, включая теги. Это означает, что если пользователь имеет эту возможность, он может управлять как тегами, так и категориями.

Если вам нужно создать более специфичную систему прав, где пользователи могут редактировать только категории, а не теги (или наоборот), вы можете создать собственные возможности. Вот как вы можете это сделать:

  1. Создайте свои собственные возможности. В WordPress имеется возможность добавить кастомные возможности через код. Это можно сделать с помощью функции add_cap() для определенных ролей.

    Пример кода, который добавляет возможность управления тегами для роли администратора:

    function add_custom_capabilities() {
       $role = get_role('administrator');
       $role->add_cap('manage_tags');
    }
    add_action('admin_init', 'add_custom_capabilities');
  2. Настройте разрешения. С помощью плагинов, таких как "Members" или "Capability Manager", вы можете настраивать созданные возможности для разных ролей. Это позволит вам четко управлять доступом к тегам и категориям.

  3. Изучите документацию. Подробности о ролях и возможностях в WordPress можно найти в Codex и в документации WordPress о таксономиях.

Таким образом, отсутствие явной возможности manage_tags не является ошибкой — это просто особенность системы управления правами. Но вы можете легко создать свои собственные возможности для учета специфики вашего сайта.

Оцените материал
Добавить комментарий

Капча загружается...