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

Замечали ли вы, что при публикации некоторые символы сами изменяются, добавляются пробелы, специальные знаки абзацев? 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]

Автор tiaurus 2182 Articles
Являюсь создателем n-wp.ru — блога о WordPress для новичков. Мне интересно многое, поэтому еще я сделал 123-box.ru — блог о программах для Windows, и tiaurus.info — блог о красоте.

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

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

Ваш электронный адрес не будет опубликован.


*