Главная » Файлы » Статьи для вебмастера » Статьи для вебмастера

Отключаем автоматическое форматирование текста в материалах Wordpress
27.11.14, 08:04:41



Данное решение понадобилось мне на одном из сайтов. На Wordpress существует автоматическое форматирование текста, которое добавляет различные элементы разметки, даже если вы добавляете материал без использования формы визуального редактора. Если дело касается обычных текстовых статей - это помогает, но, когда вы пытаетесь оформить материал, содержащий HTML коды, процесс превращается в сущий ад - тут и там появляются ненужные символы переноса, а некоторые HTML символы вообще заменяются их аналогами... Тут нам на помощь приходит вот такое решение:

1. Откройте в редакторе темы файл Функции темы (functions.php)

2. В самый верх после <?php вставьте:
Код
remove_filter( 'the_content', 'wpautop' ); // Отключаем автоформатирование в полном посте    
    remove_filter( 'the_excerpt', 'wpautop' ); // Отключаем автоформатирование в кратком(анонсе) посте    
    remove_filter('comment_text', 'wpautop'); // Отключаем автоформатирование в комментариях    
    remove_filter('the_content','wptexturize'); // Отключаем автоформатирование в полном посте    
    remove_filter('the_excerpt','wptexturize'); // Отключаем автоформатирование в кратком(анонсе) посте    
    remove_filter('comment_text', 'wptexturize'); // Отключаем автоформатирование в комментариях


На случай, если вы не хотите отключать автоматическое форматирование везде, а только для нужных участков статьи, вместо тех кодов, что я привёл выше, в Функции темы (functions.php) после <?php вставьте:
Код
function my_formatter($content) {    
    $new_content = '';    
    $pattern_full = '{(\[raw\].*?\[/raw\])}is';    
    $pattern_contents = '{\[raw\](.*?)\[/raw\]}is';    
    $pieces = preg_split($pattern_full, $content, -1, PREG_SPLIT_DELIM_CAPTURE);    
    foreach ($pieces as $piece) {    
    if (preg_match($pattern_contents, $piece, $matches)) {    
    $new_content .= $matches[1];    
    } else {    
    $new_content .= wptexturize(wpautop($piece));    
    }    
    }    
    return $new_content;    
    }    
    remove_filter('the_content', 'wpautop');    
    remove_filter('the_content', 'wptexturize');    
    add_filter('the_content', 'my_formatter', 99);


В статье просто обрамите нужный участок следующим образом, чтобы он не было подвержен автоматическому форматированию:
Код
[raw]Я участок статьи, который не подвержен автоматическому форматированию[/raw]


За основу взята ЭТА статья

Материал подготовлен Apocalypse
Категория: Статьи для вебмастера | Добавил: Apocalypse | Теги: материалах, автоматическое, текста, WordPress, Отключаем, форматирование
Просмотров: 657 | Загрузок: 0 | Рейтинг: 1.0/2
Всего комментариев: 0
Имя *:
Email: