Flector

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

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. Отключайте их осторожно и только в случае необходимости.


Комментарии (3 комментария)
  1. obrat:

    Можно поменять, например, в имени домена WordPressPlugins.ru латинское "р" на русское "р" и все дела (проверил, работает), но, это действительно способ для "домохозяек", к сожалению, не все "домохозяйки" столь собразительны и "сайтохозяину" приходится ломать голову как блокировать мешающую функцию.

    • Flector:

      беда в том, что поисковики уже много лет к таким "заменам" относятся очень плохо. потому что раньше было модно таким образом "уникализировать" ворованный текст, меняя латинские символы на русские, которые по написанию выглядят так же. в итоге такие замены приводят к АГС.

  2. obrat:

    Действительно, а я и не подумал о последствиях такой подмены символов. Спасибо, придётся блокировать функцию на всякий случай.

Написать комментарий

Для вставки кода воспользуйтесь кнопкой "Код". Используйте предпросмотр!