Intereting Posts
Удаление тегов и сообщений, соответствующих списку ключевых слов Не имеет значения, есть ли у меня более одного комментария. get_comments_number все равно равен одному? Тип сообщения Постоянная ссылка javascript и css ссылки не работают на сервере Список сообщений по пользовательской таксономии Как добавить WWW к изображениям? Показывать сообщения по-разному в зависимости от того, какой автор написал это Параметры сегмента пользовательского URL для сообщений Функция кеширования get_option? Как я могу получить сообщения в подкатегории для отображения на ее странице с исходными категориями? Как настроить сайт для разработки / размещения, чтобы внести существенные изменения в тему, а затем обновить сайт? Добавить роль в сети в многопользовательском режиме Включение миниатюр сообщений для пользовательских типов сообщений Могу ли я иметь нескольких пользователей базы данных в WordPress? Plugin dev: как размножить экземпляры плагина в одном и том же метабоксе?

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

Мой клиент нуждается в чуть более мощном редакторе, но не такой мощный, как администратор. Назовем его Chief Editor .

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

Хотя мне все еще кажется странным, что add_role (по-видимому?) add_role быть за пределами функции Hook и стоять на своем собственном в functions.php , я получил свой пользовательский пользователь, который работает следующим образом:

 // add the new role add_role( "chief_editor", __("Chief Editor"), array() ); // let it inherit the same rights as "default editor" add_action("admin_init", function() { $editor_caps = get_role("editor")->capabilities; $additional_caps = array( "promote_users" => true, "list_users" => true, "create_users" => true, "remove_users" => true, // anscheinend veraltet, trotzdem mal rein "add_users" => true, ); $merged_caps = array_merge($editor_caps, $additional_caps); $chief = get_role("chief_editor"); foreach ($merged_caps as $cap => $val) { if ($val) $chief->add_cap($cap); } }); 
  1. init или admin_init ? мои кишки говорят init потому что интерфейс должен также знать его права –
  2. Эта функция действительно получает «обновленный» редактор со всеми его изменениями? (откуда бы они ни происходили), или этот код был исключен, прежде чем что-либо могло бы изменить его capabiliites?

Chief Editor может устанавливать другие пользовательские роли. Большой! Но он может сделать администраторов и других главных редакторов, что нежелательно. Так:

  1. Как я могу ограничить Chief Editor только предоставлением разрешений ниже его?
    • Есть ли способ логически проверить: «Я, главный редактор, могу сделать a, b, c , поэтому я могу предоставить только роли пользователей, которые не показывают никакой« более высокий »/« больше », чем a, b, c
    • Или просто жестко, как «всякий раз, когда главный редактор видит раскрывающийся список пользователя-пользователя, удаляет chief_editor и administratorsuper_admin ?)

Solutions Collecting From Web of "Как изменить какие права пользовательская роль может предоставить другим пользователям (без плагина)?"