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

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

Добавить комментарий