Как отключить автоматическую замену кавычек в WordPress

Опубликовано: 01.09.2018

видео Как отключить автоматическую замену кавычек в WordPress

Word 2007 - Непечатаемые символы

По умолчанию WordPress пропускает содержимое и заголовки постов, комменты и цитаты через функцию, заменяющую одни кавычки на другие, дефисы на тире и некоторые другие символы. Исключение составляет содержимое этих HTML-тегов:


Как вставить видео на WordPress c YouTube, Vimeo (Уроки WordPress для начинающих)

< pre > < code > < kbd > < style > < script > < tt >

В них символы не заменяются.

Вот пример замены кавычек, так выглядит содержимое редактора:

Кстати, не имеет значения, какая вкладка выбрана в редакторе — «Визуально» или «HTML».

А вот так выглядят кавычки после замены:

Таблица замены символов фильтром wptexturize

Порывшись в функции wptexturize() , я составил небольшую таблицу заменяемых символов:

Символ в редакторе Заменяется на В итоге
' &#8216; &#8217; ‘ ’
" &#171; &#187; « »
– (с пробелами по краям) &#8212;
–– &#8212;
––– &#8212;
(tm) &#8482;
... (многоточие) &#8230;
'' (две кавычки рядом) &#187; »
`` &#171; «

Кавычки и тире могут отличаться в зависимости от локализации! То что в таблице — для русской версии WordPress.

Отключение фильтров:

Все четыре следующих сниппета нужно вставлять в functions.php.

Отключение замены символов в содержимом поста:

remove_filter ( 'the_content' , 'wptexturize' ) ;

В заголовке поста:

remove_filter ( 'the_title' , 'wptexturize' ) ;

В тексте комментария:

remove_filter ( 'comment_text' , 'wptexturize' ) ;

В цитате:

remove_filter ( 'the_excerpt' , 'wptexturize' ) ;

Использование альтернативных функций

Из предыдущих примеров видно, что фильтры применяются для функций the_content(), the_title(), comment_text() и the_excerpt(), поэтому, можно просто заменить их на другие, например функцию the_content() на:

примеры замены остальных трех функций:

echo get_comment_text ( ); // comment_text() echo get_the_title ( ); // the_title() echo get_the_excerpt ( ); // the_excerpt()

Функции нужно искать и менять в файлах темы, the_content() вероятно будет находиться в single.php или loop.php и т.д.

Рекомендую быть осторожнее с этим методом, потому что можно потерять и другие фильтры, например у меня после замены the_content() перестали работать шорткоды.

Смотрите также

rss