Intereting Posts
Как создать настраиваемый плагин Как разместить теги HTML в контенте от the_content ()? Иерархические пользовательские поля Что представляет собой риск безопасности в плагине? после миграции новые загруженные изображения не будут отображаться Автоматически создавать отсутствующие изображения Как я могу сделать ссылку меню видимой только для администраторов (без плагинов)? Загрузка файла WordPress Могу ли я добавить ссылку «показать все страницы» на страницы ссылок wp? Каков наилучший способ установки WordPress для управления версиями и PhpStorm при одновременном разрешении обновлений Как создать / modfiy WP_Query для поиска в заголовке сообщения или пользовательском поле? Использовать wp_redirect без фильтра в файле плагина Как получить ссылку категории без запроса к базе данных Как обрабатывать эту структуру URL. Продолжайте получать "страница не найдена" Обновление метаданных сообщений для пользовательских типов сообщений

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

У меня есть сайт WordPress, где некоторые люди (клиенты, не являющиеся экспертами) должны создавать / управлять пользователями. Сайт использует несколько настраиваемых типов сообщений, и каждому пользователю назначаются разрешения для одного или нескольких из этих cpt. На данный момент я вижу два способа справиться с этим, и я не очень доволен ни одним из них.

(1) Роли пользователей : если у меня есть четыре пользовательских типа сообщений (A, B, C, D), тогда мне понадобится много ролей пользователей, чтобы охватить все комбинации возможностей. (Роль A, Роль AB, Роль ABD …). Это не очень удобно для клиента.

(2) Плагин управления возможностями : если бы я мог управлять пользователями, я бы использовал плагин, например «Редактор роли пользователя». Но это довольно сложно обрабатывать для моих клиентов, не являющихся экспертами, и риск взлома системы высок.

Я думаю, что у меня есть простые флажки (по крайней мере, при создании нового пользователя), где клиент может выбирать настраиваемые типы сообщений, к которым должен иметь доступ новый пользователь. Например: этот пользователь сможет делать все с помощью cpt A и B и D.

Есть ли способ сделать это, и это даже то, что вы должны делать с WordPress?


ОБНОВИТЬ

@RyanLoremIpsum указал мне в правильном направлении, поэтому я смог написать небольшой плагин, который так же прост, как мне нужно. Выглядит примерно так:

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

Вам необязательно назначать роли для управления возможностями пользователя.

Во-первых, зарегистрируйте свои собственные типы сообщений с соответствующими возможностями. См. Возможности в разделе « Справочник по функциям / тип регистрации» – Параметры

Управление возможностями пользователей

Вы можете использовать add_cap или remove_cap для добавления или удаления пользовательских возможностей для определенного пользователя.

// Add capability to a specific user $user = new WP_User( $user_id ); $user->add_cap( 'can_edit_posts'); // Remove a capability from a specific user. $user = new WP_User( $user_id ); $user->remove_cap( 'read_private_posts' ); 

Это удобно, потому что позволяет предоставлять пользовательские возможности, не принадлежащие назначенной роли пользователя.

Например, вы можете создать форму с флажками для каждого типа сообщений, как вы говорили. Для каждого отмеченного флажка он предоставит данному идентификатору пользователя возможности, которые вы создали, когда вы зарегистрировали этот тип сообщения. Аналогично, снятие флажка может удалить возможности.