Я хочу создать пользовательскую возможность доступа к интерфейсу моего плагина.
- Должен ли плагин управлять добавлением этой возможности ко всем учетным записям администратора при активации?
- Если да: удается ли WordPress добавить возможность всем администраторам суб-блогов и супер-администраторам в мультисайтовых установках, или эта функция должна обрабатываться плагином?
Ответы:
Удалить то, что вы добавляете
Во-первых, убедитесь, что все, что вы добавляете при активации, также удаляется при удалении . Я получил краткое руководство, включая пример кода для вас.
Тест с небольшим плагином:
Я действительно мало знаю о MU, но, насколько я могу судить, объект ролей является глобальным для всех блогов. Просто попробуйте этот маленький плагин и посмотрите, что вы можете получить:
Добавление возможностей
Примечание. Вы можете добавить возможность к роли, не предоставляя к ней доступ - просто установите второй аргумент
$grant = false;
. Это позволяет внести в белый список отдельных пользователей, просто добавив кепку, включая последний аргумент, как true.источник
Для плагина, над которым я сейчас работаю, я хотел предоставить / ограничить доступ к настройкам плагина (то есть соответствующим страницам меню администратора) для каждой роли .
Поэтому мне пришлось добавить новый плагин, специфичный
capability
дляuser roles
.К сожалению, ответ kaiser, похоже, больше не работает, поэтому я потратил некоторое время, пытаясь выяснить, как включить вышеупомянутую функциональность.
Расписание
Прежде чем я поделюсь с вами своим кодом, вот что это такое, в виде простого текста:
THE_NEW_CAP
к ролям, имеющим определенную встроенную возможностьBUILT_IN_CAP
(в моем случае:)edit_pages
.Код
А вот приведенный выше список преобразован в код:
»Настройка
" Используй это
»Очистка
Примечание. Пожалуйста, не используйте заглавные буквы. Это только для удобства чтения.
источник
get_editable_roles()
для получения ролей, которые вы хотите редактировать. Вы будете ломать плагин иначе.Это работает для меня:
источник