Я управляю сетью WordPress и хотел бы добавить возможность пользователя unfiltered_html к уже предопределенной роли пользователя Admin. В стандартной установке WordPress учетная запись администратора уже имеет эту возможность, но в установке MU эта возможность предоставляется только суперадминистраторам. Роли и возможности WordPress.
Как увеличить роль администратора из темы или плагина?
wordpress.org/extend/plugins/unfiltered-mu похоже, что это может помочь. Но это работает для администраторов и редакторов. Если это нежелательно, возможно, код можно немного изменить?
см. это A: wordpress.stackexchange.com/questions/13025/…
@Rev. Voodoo Спасибо за предложение. Это помогло пролить некоторый свет на тему, так как добавление возможности unfiltered_html недостаточно, чтобы позволить роли, отличной от администратора или суперадминистратора, публиковать вставки и т. д. Ключ был в том, чтобы отменить фильтрацию/перехват KSES WordPress: kses_remove_filters()
Подробный блог: goo.gl/xNuafH
Спасибо, Филипп. Что касается класса WP_Role, когда следует выполнять код? Я предполагаю, что это влияет на глобальный объект роли? Я рад, что вы подняли второй блок кода, упомянув, что я могу запустить его один раз в моем файле функций. Я нашел похожие решения на некоторых форумах поддержки WordPress, но мне кажется странным запускать один раз код в теме или плагине. Особенно без проверки того, существует ли уже изменение. Возможно, роль записи на самом деле незначительна. Чтобы проверить возможность, просто запишите возможность в роль, как показывает ваш первый пример.
Меня также интересует, как вы будете выполнять класс WP_Role, если у вас будет свободная минутка, чтобы рассказать нам об этом. Спасибо
@Jonnybojagles & @Osu, посмотрите это: Полное руководство по ролям и возможностям garyc40.com/2010/04/ultimate-guide-to-roles-and-capabilities
Я уже прочитал эту статью в поисках, но я воспользовался возможностью, чтобы просмотреть все это еще раз, спасибо! В конце концов, после анализа плагина unfiltered-mu (упомянутого выше преподобным Вуду) я в конце концов обнаружил, что изменения ролей путем добавления возможностей недостаточно. Мне нужно было удалить фильтры KSES WordPress.
Я предпочитаю добавлять запятую к последнему элементу в массивах. Несмотря на то, что это может показаться неуместным, поскольку нет необходимости заставлять код работать и приводить к ошибкам, это удобно при использовании контроля версий при визуализации модификаций; вы бы не увидели, что старая строка элемента массива удалена, повторно добавлена и выделена как новая с запятой в качестве добавления или изменения, сделанного для этой строки. Хотя это немного, это помогает сэкономить много времени при анализе модификаций.
Функциональность также заключена в регистрацию и отмену регистрации плагина, поэтому логику не нужно предварительно формировать на каждом экземпляре WP.
Вы можете использовать класс WP_Role,
Таким образом, чтобы ответить на ваш первоначальный вопрос о том, как разрешить администраторам вводить теги SCRIPT и IFRAME в контент публикации, вы ищете возможность «unfiltered_html», которая в Multisite предоставляется только суперадминистраторам.
или вы можете запустить это один раз в своих функциях:
Чтобы позволить другой роли, отличной от Суперадминистратора или Администратора (в зависимости от того, является ли установка WordPress сетевой или MU-экземпляром) добавлять нефильтрованный HTML-код в сообщение или комментарий, необходимо удалить фильтр WordPress KSES.
Проверьте, есть ли у пользователя определенные возможности.
Если да, то удалите KSES
Эта функциональность уже реализована в unfiltered-mu, что позволяет администраторам и редакторам добавлять нефильтрованный html.