Как отключить автоформатирование текста записей?
WordPress позиционируется как движок "для домохозяек", которые вовсе не обязаны знать html-разметку. Поэтому WordPress сам форматирует текст записей, расставляя теги параграфов, выполняя типографские правки и т.д. Такой способ "облегчить" жизнь вебмастеров вызывает множество споров. Попробуйте, например, в тексте записи напечатать символ " (так называемый знак дюйма) и опубликуйте запись. В опубликованном виде у вас будут выведены кавычки-елочки «. Единственный способ вывести символ " это на вкладке "Текст" редактора напечатать его html-сущность ", опубликовать запись и больше никогда не переключаться на визуальный режим редактора (он заменит html-сущность на сам символ, который в опубликованном виде превратится в символ кавычек-елочек).
При использовании сторонних блог-клиентов вроде Windows Live Writer тоже возникают проблемы. WLW и сам прекрасно форматирует текст записей, однако визуальный редактор движка это форматирование запросто уничтожает. Поэтому пользователи WLW вынуждены либо отключать визуальный редактор у себя в профиле, либо отключать функции форматирования текста в движке.
И так, какие функции автоматического форматирования есть в движке и как их отключить? Начнем с функции wpautop, которая автоматически расставляет в тексте записей теги параграфов (p), воспринимая любой перевод строки как конец предыдущего и начало нового параграфа текста. Эта функция автоматически применяется к тексту записей, цитатам и тексту комментариев. Для ее отключения вам необходимо добавить в файл functions.php вашей темы следующий код:
//отключение расстановки тегов параграфов start remove_filter('the_content', 'wpautop'); //записи remove_filter('the_excerpt', 'wpautop'); //цитаты remove_filter('comment_text', 'wpautop'); //комментарии //отключение расстановки тегов параграфов end |
Сразу скажу - отключать расстановку тегов параграфов для цитат и комментариев будет плохой идеей. Темы для движка рассчитаны на то, что цитаты и комментарии всегда выводятся в тегах параграфов и оформляют в стилях именно их. Да и отключать данную функцию для текста записей можно лишь в двух случаях: если вы пользуетесь вкладкой "Текст" редактора и сами всегда прописываете теги параграфов или если вы используете блог-клиенты вроде Windows Live Writer, которые сами везде расставляют нужные html-теги.
Следующая функция автоматического форматирования это wptexturize. Это именно она меняет кавычки на елочки, заменяет (c) на © и делает прочие типографские правки. В целом, смысл в функции есть, но только в том случае, если вы знаете, что и как будет ею заменено. Потому что люди часто не могут понять, с чего вдруг их текст в виде трех точек ... превращается в один символ троеточия …, который во многих шрифтах выглядит гораздо хуже обычных трех точек.
Отключить типографские правки функции wptexturize можно так:
//отключение типографских замен start remove_filter('the_content', 'wptexturize'); //записи remove_filter('the_excerpt', 'wptexturize'); //цитаты remove_filter('comment_text', 'wptexturize'); //комментарии //отключение типографских замен end |
При желании функцию wptexturize можно отключить и для заголовков записей (the_title) и для текста виджетов (widget_text) и т.д. Но делать это я бы не рекомендовал, так как те же кавычки в виде знаков дюйма в заголовке записи могут сломать заголовок страницы, так как они обрежут собой тег title.
Еще одной функцией автоматического форматирования является функция capital_P_dangit, которая однажды меня вогнала в полный ступор. Я пытался опубликовать в записи название сайта WordpressPlugins.ru, но в опубликованном виде название превращалось в WordPressPlugins.ru. Не зная, что в движке есть функция автоформатирования названия движка, я потратил много часов, пытаясь убрать заглавную букву P - переключал темы, отключал плагины и т.д. Короче, эту надоедливую функцию можно отключить следующим кодом:
//отключение форматирования слова WordPress start remove_filter('the_content', 'capital_P_dangit',11); //записи remove_filter('the_excerpt', 'capital_P_dangit',11); //цитаты remove_filter('comment_text', 'capital_P_dangit',31); //комментарии //отключение форматирования слова WordPress end |
Это все известные мне функции автоматического форматирования текста в WordPress. Отключайте их осторожно и только в случае необходимости.
Можно поменять, например, в имени домена WordPressPlugins.ru латинское "р" на русское "р" и все дела (проверил, работает), но, это действительно способ для "домохозяек", к сожалению, не все "домохозяйки" столь собразительны и "сайтохозяину" приходится ломать голову как блокировать мешающую функцию.
беда в том, что поисковики уже много лет к таким "заменам" относятся очень плохо. потому что раньше было модно таким образом "уникализировать" ворованный текст, меняя латинские символы на русские, которые по написанию выглядят так же. в итоге такие замены приводят к АГС.
Действительно, а я и не подумал о последствиях такой подмены символов. Спасибо, придётся блокировать функцию на всякий случай.