Как отключить удаление тегов span в TinyMCE
Я публикую HTML, сгенерированный Word, в WordPress через XMLRPC. До того, как данные попадают в post.php, формат корректно сохраняется в базе данных. TinyMCE выполняет свою обработку, и я теряю множество деталей форматирования.
Основная проблема, которую я наблюдаю, заключается в том, что тег <span>
с информацией о стилях, окружающий другие элементы, удаляется. Я проверил, что эти теги действительно удаляются именно TinyMCE, а не Kses.
Есть ли способ предотвратить изменение HTML редактором TinyMCE? Я пробовал следующее:
add_filter('tiny_mce_before_init', 'tinymce_init');
function tinymce_init( $init ) {
$init['extended_valid_elements'] .= ', span[style|id|nam|class|lang]';
$init['verify_html'] = false;
return $init;
}
но это не помогло. Согласно документации TinyMCE, "verify_html"
Эта опция включает или отключает функциональность очистки элементов. Если установить эту опцию в false, вся очистка элементов будет пропущена, но другие функции очистки, такие как преобразование URL, все равно будут выполняться.

Я не смог найти опцию extended_valid_elements
в панели настроек TinyMCE advanced, но добавление следующего кода в мой functions.php
решило проблему:
function override_mce_options($initArray) {
$opts = '*[*]';
$initArray['valid_elements'] = $opts;
$initArray['extended_valid_elements'] = $opts;
return $initArray;
} add_filter('tiny_mce_before_init', 'override_mce_options');

Я почти всегда использую плагин TinyMCE Advanced - на его странице настроек (Настройки → Конфигурация TinyMCE) есть возможность добавить поддерживаемые теги с помощью опции extended_valid_elements
. Просто добавьте span
и любые другие теги, которые вы не хотите удалять, и наслаждайтесь!

Спасибо, TinyMCE Advanced делает точно то же самое, что и мой код выше, для добавления extended_valid_elements. Но я воспользуюсь плагином. Возможно, в моем коде есть какая-то ошибка.

Установите его и протестируйте — если всё работает, значит проблема в вашем коде. Если нет, значит что-то переопределяет его на уровне плагина или темы.

Я не смог найти место в последней версии TinyMCE Advanced для добавления элементов

Если вы используете плагин TinyMCE Advanced, для него есть дополнительный плагин под названием TinyMCE Advanced Configuration, с помощью которого можно изменять настройки конфигурации, например параметр extended_valid_elements.
