Intereting Posts
is_customize_preview () как функция, чтобы проверить, настроен ли «Предварительный просмотр» в JavaScript JavaScript Выполните jQuery с пользовательским прослушивателем событий после успешного добавления элемента в корзину Как условно скрыть имя автора в Single.php, если категория – это «новости», иначе, если категория – это что-то еще, отображающее имя автора? Пользовательские атрибуты тегов javascript Проблема создания простого плагина Google Maps Нужно запустить плагин на Customize.php flush_rewrite_rules () отменяет эффект add_rewrite_rule () Опубликованное обновление Использование rewind_posts для отображения нескольких категорий Загрузите ajax, если is_home () Удаление / добавление виджетов из / в пул доступных виджета Есть ли способ ограничить количество элементов верхнего уровня в пользовательском меню? Можно ли изменить URL-адрес изображения на крючки? Пользовательские изменения Postype в панели администратора Разбиение пользовательских mysql в wordpress

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

Мой клиент нуждается в чуть более мощном редакторе, но не такой мощный, как администратор. Назовем его 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 "Как изменить какие права пользовательская роль может предоставить другим пользователям (без плагина)?"