Как отключить автоформатирование p и br
При публикации постов в WordPress по умолчанию форматируется введенный текст, заключая абзацы в теги <p></p>, а также вставляет перенос на новую строку (<br />).
Отключить эту «услугу» можно добавив в файл functions.php темы строчку кода:
remove_filter( 'the_content', 'wpautop' ); // Отключаем автоформатирование в полном тексте
remove_filter( 'the_excerpt', 'wpautop' ); // Отключаем автоформатирование в анонсе
remove_filter('comment_text', 'wpautop'); // Отключаем автоформатирование в комментариях
Если нужно отключить автоформатирование только на определенных страницах, то в шаблоне нужной страницы перед выводом контента поста (the_content();) необходимо добавить:
remove_filter( 'the_content', 'wpautop' ); // Отключаем автоформатирование в полном тексте
Как отключить автоформатирование спецсимволов
Если необходимо отключить данную функцию, то в файл functions.php необходимо добавить:
remove_filter('the_content','wptexturize'); // Отключаем автоформатирование в полном тексте
remove_filter('the_excerpt','wptexturize'); // Отключаем автоформатирование в анонсе
remove_filter('comment_text', 'wptexturize'); // Отключаем автоформатирование в комментариях
Функция wptexturize() отвечает за многие автоматические изменения в тексте, которые выполняет WordPress перед тем, как показать содержимое сгенерированной веб-страницы посетителю. К примеру это замена кавычек, замена двойного тире, замена символа торговой марки ™ и т.д.
Частичное отключение автоформатирования
В файле 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] с помощью которого можно выделять текст, на который не будет распространяться автоматическое форматирование:
[raw]Этот текст не будет автоматически отформатирован.[/raw]
Данный тег легко вставить в HTML-редактор, чтобы он всегда был под рукой.
Дополнительная информация:
Источник: Студия-ГОСТ

Комментарии (0)