- Вопрос или проблема
- Ответ или решение
- Устранение проблемы с удалением тегов HTML и
- Причины удаления HTML-тегов в WP Editor
- Решения для сохранения HTML-тегов
- 1. Разрешение неограниченного HTML для пользователей
- 2. Использование плагина для улучшенного управления HTML
- 3. Использование альтернативного редактора
- Заключение
Вопрос или проблема
Я работаю в области админки WP, и там есть текстовое поле, использующее стандартный редактор WP, не TinyMCE. Стандартный редактор WP удаляет тег <style>
и также другие HTML-теги. Я называю это стандартным редактором WP, но, возможно, он официально называется как-то иначе? Это редактор с двумя вкладками в правом углу (Визуально, Текст).
Есть ли способ предотвратить удаление всех HTML-тегов этим редактором?
Контент, который я добавляю в редактор WP, используется в исходящих электронных письмах, поэтому это на самом деле полный HTML-документ, и именно поэтому я пытаюсь сохранить форматирование и HTML-теги.
Я заметил, что когда я переключаюсь с вкладки “Текст” на вкладку “Визуально”, многие HTML-теги удаляются.
WordPress имеет возможность пользователя под названием unfiltered_html
. Любой пользователь с возможностью unfiltered_html
может размещать любой HTML, который он хочет, включая теги <script>
.
Если вам нужно добавить возможность unfiltered_html
некому (супер) администратору, вы можете использовать WP_User::add_cap()
для ее добавления пользователю:
add_action( 'admin_init', 'wpse_393657_grant_user_unfiltered_html' );
function wpse_393657_grant_user_unfiltered_html() {
$user = get_user_by( 'login', 'my_username' );
if ( ! user_can( $user, 'unfiltered_html' ) ) {
$user->add_cap( 'unfiltered_html', true );
}
}
…или WP_Role::add_cap()
, чтобы добавить это к роли (например, редактор).
add_action( 'admin_init', 'wpse_393657_grant_role_unfiltered_html' );
function wpse_393657_grant_role_unfiltered_html() {
$role = get_role( 'editor' );
if ( ! $role->has_cap( 'unfiltered_html' ) ) {
$role->add_cap( 'unfiltered_html', true );
}
}
(Эти фрагменты кода не тестировались и предназначены для того, чтобы послужить для вас отправной точкой.)
Обратите внимание, что назначения возможностей являются постоянными (т.е. записываются в базу данных), и пользователь или роль будут сохранять возможность unfiltered_html
до тех пор, пока вы ее не отозвёте.