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







