Как настроить возможности “управления категориями”

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

Я хочу установить возможности “manage_categories” для таксономии по типу записи, но не для общих категорий?

Я добавил в register_taxonomy:

        'manage_terms'          => 'manage_categories',
        'edit_terms'            => 'manage_categories',
        'delete_terms'          => 'manage_categories',
        'assign_terms'          => 'read'
        'edit_post'             => 'edit_video',
        'read_post'             => 'read_video',
        'delete_post'           => 'delete_video',
        'delete_others_videos'  => 'delete_others_videos',
        'edit_posts'            => 'edit_videos',
        'edit_others_posts'     => 'edit_others_videos',
        'publish_posts'         => 'publish_videos',
        'read_private_posts'    => 'read_private_videos',

Как мне предотвратить управление общими категориями сайта этим пользователем и дать возможность редактировать только категории таксономии по типу записи?

Что мне следует добавить?
Спасибо

Вы можете просто определить свои собственные возможности для использования этой таксономии

    'manage_terms'          => 'manage_terms_TAXONOMIE_NAME',
    'edit_terms'            => 'edit_terms_TAXONOMIE_NAME',
    'delete_terms'          => 'delete_terms_TAXONOMIE_NAME',
    'assign_terms'          => 'assign_terms_TAXONOMIE_NAME',

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

Ответ или решение

Разумеется, настройка прав доступа к таксономиям в WordPress — это задача, требующая внимания к деталям и осторожности. Вашей целью является ограничение доступа пользователей к управлению категориями постов только для специфических типов записей, избегая при этом управления общими категориями сайта. Давайте рассмотрим, как можно достичь этого, используя модификации способностей пользователей и таксономий.

Шаг 1: Создание уникальных способностей для таксономии

Первым шагом будет определение уникальных прав для вашей таксономии, чтобы отделить её от стандартных категорий. В описанном контексте предложен хороший подход с использованием уникальных прав, специфичных для вашей таксономии. Вы можете создать эти права при помощи функции register_taxonomy, и здесь важно выбрать правильные идентификаторы:

register_taxonomy('your_taxonomy', 'your_post_type', array(
    'capabilities' => array(
        'manage_terms' => 'manage_terms_your_taxonomy',
        'edit_terms' => 'edit_terms_your_taxonomy',
        'delete_terms' => 'delete_terms_your_taxonomy',
        'assign_terms' => 'assign_terms_your_taxonomy',
        // другие параметры
    ),
));

Шаг 2: Назначение способностей пользователям

После определения уникальных прав для вашей таксономии, следующее действие — это настройка ролей пользователей, чтобы они обладали только необходимыми способностями. Это можно сделать посредством плагинов управления ролями, таких как "User Role Editor", или программно с использованием функции add_cap:

function add_theme_caps() {
    // Предположим, у вас есть роль "editor"
    $editor = get_role('editor');

    $editor->add_cap('manage_terms_your_taxonomy');
    $editor->add_cap('edit_terms_your_taxonomy');
    $editor->add_cap('delete_terms_your_taxonomy');
    $editor->add_cap('assign_terms_your_taxonomy');
}
add_action('admin_init', 'add_theme_caps');

Шаг 3: Проверка корректности внедрения

Убедитесь в том, что пользователи с этими правами не могут управлять общими категориями. Проверьте доступ для ролей, которым назначения не произошло, чтобы исключить возможные ошибки. Тестирование лучше проводить в безопасной среде.

Заключение

Эффективное использование WordPress предполагает грамотное управление правами доступа. Подход с созданием уникальных способностей для управления специфической таксономией поможет сохранить гибкость и безопасность вашего сайта. Не забудьте протестировать изменения в среде разработки и только после этого переносить их в рабочую среду, чтобы убедиться в том, что все работает корректно и безопасно.

Использование уникальных способностей позволит вам получить точный контроль над данными и предотвратит нежелательные изменения или доступ к элементам, которые не должны подвергаться изменениям таким пользователем.

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

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