Как отключить автоформатирование 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)