Как отключить TinyMCE от удаления тегов span

10

Я публикую Word сгенерированный HTML в 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-адреса, будут по-прежнему выполняться.

ltfishie
источник

Ответы:

6

Я не смог найти 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');

Источник

Сим
источник
4

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

SickHippie
источник
Спасибо, TinyMCE Advanced делает то же самое, что и мой код выше, чтобы добавить extended_valid_elements. Но я сделаю это с плагином. Может быть, я есть ошибка где-то в моем коде.
ltfishie
Установите его и попробуйте - если он работает, то проблема в вашем коде. Если это не так, что-то еще переопределяет это на уровне плагина или темы.
SickHippie
2
Я не смог найти место в последней версии TinyMCE Advanced для добавления элементов
Никола Пелучетти
Это не удивительно, так как этому посту 3 1/2 года.
SickHippie