Wordpress продолжает «чистить» мой пост в формате html - PullRequest
3 голосов
/ 28 марта 2012

Итак, здесь я снова сталкиваюсь с редактором WordPress WYSIWYG.мой клиент попросил перенести его сайт в WP.Никаких проб, ветерок :).На самом деле это было легко, перенесли из одной структуры БД в другую, и все прошло нормально.

Теперь у меня проблема.На старом сайте использовался редактор, который добавлял теги <br> и <p> к контенту для его форматирования (мне это кажется законным).Но WordPress не позволит эти теги.всякий раз, когда клиент пытается отредактировать сообщение, WP удаляет все теги HTML, которые он считает «незаконными».

Поэтому я продолжал поиск.Сначала я попытался установить некоторые рекомендуемые плагины, которые я нашел для этой проблемы (например, this ).У меня это не сработало (я верю, что для некоторых других) ...

Затем я обнаружил пост, в котором говорилось, что нужно добавить в файл function.php функцию, которая удалит фильтры:

function mod_mce($initArray) {
$initArray['verify_html'] = false;
return $initArray;
}
add_filter('tiny_mce_before_init', 'mod_mce');

, а также это:

function my_tinymce( $init ) {
$ext = 'div[id|name|class|style]';

if ( isset( $init['extended_valid_elements'] ) ) {
    $init['extended_valid_elements'] .= ',' . $ext;
} else {
    $init['extended_valid_elements'] = $ext;
}
 return $init;
} 
add_filter( 'tiny_mce_before_init', 'my_tinymce' );

функции из этой темы .Нет, не работал также ...

Кто-то - есть идеи?Это кажется таким глупым, но вокруг этой темы так много споров ... Спасибо

1 Ответ

3 голосов
/ 28 марта 2012

Вы можете попробовать удалить фильтры, которые wpautop использует для фильтрации содержимого и выдержки, просто поместите их в файл funcions.php

remove_filter( 'the_content', 'wpautop' );
remove_filter( 'the_excerpt', 'wpautop' );

Ссылка: WordPess wpautop

Чтобы разрешить загрузку более старого контента с p и br в tinyMCE

function my_tinymce_config( $init ) {
    $init['remove_linebreaks'] = false; 
    $init['convert_newlines_to_brs'] = true; 
    $init['remove_redundant_brs'] = false; 
    return $init;
}
add_filter('tiny_mce_before_init', 'my_tinymce_config');

Ссылка: конфигурация tinyMCE посмотрите на Очистку / Вывод и попробуйте поиграть с ними.

Другой способ может быть полезен Ссылка

tinyMCE.init({
    ...
    verify_html : false
});
...