Отключение автоформатирования в wordpress

formtextПри публикации постов в wordpress некоторые символы сами заменяются на другие, добавляются специальные знаки абзацев, отступы, переносы строк.





В WordPress есть функция автоматического форматирования текста в соответствии с правилами движка, которые зачастую не подаются логике и чаще всего мешают публиковать определенный постов (например, с исходным кодом, который в изобилии имеется в кодерских блогах.
Как решить эту проблему мы и рассмотрим в этом посту.
Есть два способа побороть эту напасть, отключить автоформатирование полностью или частично только в определенном шоркоде. 
Первый вариант — это всё форматирование текста делается вручную, как хотим и где хотим. Если требуется в конкретном месте подойдет второй вариант, чтобы не приходилось самостоятельно расставлять все теги в тексте своими руками.

1. ОТКЛЮЧЕНИЕ АВТОФОРМАТИРОВАНИЕ ПОЛНОСТЬЮ

А . Как отключить автоформатирование p и br

При публикации постов в WordPress по умолчанию форматируется введенный текст, заключая абзацы в тег: <p> (абзац, новый параграф) А так же вставляет перенос на новую строку: <br> в произвольных случаях, когда и как захочется wordpress. Отключать можно добавив в файлfunctions.phpтемы строчку кода:

remove_filter( 'the_content', 'wpautop' );
// Отключаем автоформатирование в полном посте
remove_filter( 'the_excerpt', 'wpautop' );
// Отключаем автоформатирование в кратком(анонсе) посте
remove_filter('comment_text', 'wpautop');
// Отключаем автоформатирование в комментариях


Если нужно выключить автоформатирование только в определенных страницах, то в шаблоне нужной вам страницы, перед выводом контента поста,необходимо добавить:
remove_filter( 'the_content', 'wpautop' );
// Отключаем автоформатирование в полном посте

Б . Как отключить автоформатирование спецсимволов

В задачи функции форматирования текста входит изменить текст на более правильный, читаемый и визуально привлекательный.

Текст изменяется следующим образом:

"текст в кавычках" станет “текстом в лапках”
'текст в кавычках' станет ‘текстом в лапках’
          --- станет —
           -- станет –
          ... станет …
          (c) станет ©
          (r) станет ®
         (tm) станет ™
           '' станет ”
            станет “
  president's станет president’s
  presidents' станет presidents’
          12' станет 12′
          12" станет 12″
          2x4 станет 2×4

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

Если вам необходимо отключить данную функции, то выполните следующие действия.

Добавляем в файл functions.php следующие строки:

remove_filter('the_content','wptexturize');
// Отключаем автоформатирование в полном посте
remove_filter('the_excerpt','wptexturize');
// Отключаем автоформатирование в кратком(анонсе) посте
remove_filter('comment_text', 'wptexturize');
// Отключаем автоформатирование в комментариях
 

2. ОТКЛЮЧЕНИЕ АВТОФОРМАТИРОВАНИЕ ЧАСТИЧНО

А вот возможность отключать автоматическое форматирование для определенной части текста было бы полезным для многих.

Первым делом мы создаем функцию, достаточно вставить в файл functions.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]

C помощью которого можно выделять текст, на который не будет распространятся автоматическое форматирование:

[raw]Этот текст не будет автоматически отформатирован.[/raw]

Источник: http://studio-gost.ru/otklyuchenie-avtoformatirovanie-v-wordpress/

 

Оставить комментарий