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