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

👍 Научим бесплатно правильно создавать сайты на WordPress. Подробнее →

Замечали ли вы, что при публикации некоторые символы сами изменяются, добавляются пробелы, специальные знаки абзацев? WordPress устроен так, что он автоматически форматирует текст в соответствии со своими правилами, которые зачастую не помогают, а мешают публиковать определенный текст (например, исходный код, который в изобилии публикуется в кодерских блогах). Так как же избавиться от этого? Думаю, что избавляться совсем не нужно, иначе вам самим придется расставлять всю разметку в тексте вручную. А вот возможность отключать автоматическое форматирование для определенной части текста было бы полезным. Давайте добавим такую возможность в вашу тему.

В файл functions.php добавьте такие строчки:

<code>
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, с помощью которой можно выделять текст, на который автоматическое форматирование распространяться не будет:

<code>[raw] этот текст не будет отформатирован автоматически [/raw]

Создай свой первый сайт на WordPress

tiaurus

Автор n-wp.ru — блога о WordPress для новичков.

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

×
WordPress:
прокачай свой сайт!

Скидка на премиум темы и плагины

Успей забрать скидку ⋙