Настройка TinyMce в WordPress — предотвращение очистки тегов, управление переносами строк и т.д.
Уверен, что вы не раз сталкивались с проблемой, когда стандартный редактор WordPress удаляет теги в редакторе при переходе с текстового в визуальный режим и обратно.
Достаточно часто необходимо переключаться между визуальным и HTML режимом, не говоря уже, что заказчику в 90% случаев удобней делать это в визуальном режиме, но при этом иногда есть необходимость вставить специфичную верстку.
После сохранения такой верстки мы можем увидеть, что часть верстки пропала, переносы расположены не так, как надо и результат может расстроить. Благо, через хуки WordPress мы можем передать параметры в TinyMce.
Для работы с допустимыми тегами можно использовать следующий хук, который необходимо добавить в файл function.php вашей темы:
| 1 2 3 4 5 6 7 8 | function delfi_tinymce_fix( $init ) {     // добавление html элементов, которые не будут стираться     $init['extended_valid_elements'] = 'div[*],article[*],noindex[8],ul[class|id]';     return $init; } add_filter('tiny_mce_before_init', 'delfi_tinymce_fix'); | 
Параметр extended_valid_elements TinyMce позволяет расширить набор тегов, которые не будут удаляться при сохранении. Мы указали, что div, noindex и article теги будут сохраняться со всеми возможными атрибутами, а ul будет сохраняться только с атрибутами class и id.
Так же можно управлять переносами, заменой переносов на <br>:
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | function delfi_tinymce_fix( $init ) {     // добавление html элементов, которые не будут стираться     $init['extended_valid_elements'] = 'div[*],article[*],noindex[*],ul[class|id]';     // не удалять разрывы строк     $init['remove_linebreaks'] = false;     // конвертировать символы новой строки в BR     $init['convert_newlines_to_brs'] = true;     // не удалять избыточные BR     $init['remove_redundant_brs'] = false;     return $init; } add_filter('tiny_mce_before_init', 'delfi_tinymce_fix'); | 
Список параметров и их описание можно посмотреть по ссылке.
Комментарии к Настройка TinyMce в WordPress — предотвращение очистки тегов, управление переносами строк и т.д. (1)
Артем
А сталкивались ли вы с тем, что некоторые темы или плагины могут повторно очищать контент через другие хуки или приоритетные фильтры, даже после применения extended_valid_elements? Как вы обнаруживаете и решаете такие случаи — через более поздние хуки или проверку итогового HTML? Для упрощения подобных задач я использую Clearfy Pro, там просто есть возможность задать расширенный список допустимых тегов для TinyMCE, и сразу видно, что именно фильтруется, без ручного кода.