wptexturize() – заменяет кавычки и другие символы на более визуально правильные и привлекательные

Возвращает переданный в неё текст, преобразуя в нём кавычки, апострофы, тире, многоточие, символ торговой марки и символ умножения.

Например, если в редакторе написать это:

То на сайте будет:

  • Замены в пределах некоторых HTML-тегов производиться не будет, по умолчанию это теги <pre><code><kbd><style><script>, and <tt>, но вы можете изменить их список фильтром no_texturize_tags.
  • Также будет проигнорирован текст внутри шорткода [code]. Список шорткодов можно изменить фильтром no_texturize_shortcodes.
  • Полностью отключить эту функцию можно хуком run_wptexturize.
  • Не используйте его до инициализации хука init.
wptexturize( $text, $reset = false )

Параметры

$text
(строка) Текст, который нужно отформатировать.

Список заменяемых символов

Обратите внимание, что данная таблица актуальна, если в настройках сайта указан русский язык.

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

run_wptexturize – полное отключение функции wptexturize()

При помощи фильтр-хука run_wptexturize можно либо полностью отключить выполнение функции, либо отключить её на определённых страницах и при определённых условиях.

Пример:

add_filter( 'run_wptexturize', 'true_no_texturize', 25 );
 
function true_no_texturize( $run_texturize ) {
	return false; // отключена
}

Не знаете, куда вставлять код?

no_texturize_tags – изменяем список HTML-тегов, в которых не будет производиться замена

Как я уже упоминал выше, по умолчанию функция не будет обрабатывать текст, находящийся внутри HTML-тегов <pre><code><kbd><style><script>, and <tt>, но мы можем либо удалить любые из эти тегов, либо добавить новые в список.

Например давайте удалим тег <kbd> и вместо него добавим тег <var>, тогда наш сниппет примет вид:

add_filter( 'no_texturize_tags', 'true_no_texturize_tags', 25 );
 
function true_no_texturize_tags( $default_no_texturize_tags ) {
 
	// добавляем тег <var>
	$default_no_texturize_tags[] = 'var';
 
	// удаляем тег <kbd>
	if ( ( $key = array_search( 'kbd', $default_no_texturize_tags ) ) !== false) {
		unset( $default_no_texturize_tags[ $key ] );
	}
 
	return $default_no_texturize_tags;
}

Не знаете, куда вставлять код?

no_texturize_shortcodes – изменяем список шорткодов, внутри которых не будет производиться обработка текста

Допустим, что вы зарегистрировали какой-то произвольный шорткод и не хотели бы, чтобы в нём срабатывала фильтр на функции wptexturize(), тогда вы можете добавить свой шорткод в исключения следующим кодом:

add_filter( 'no_texturize_shortcodes', 'true_no_texturize_shortcodes', 25 );
 
function true_no_texturize_shortcodes( $default_no_texturize_shortcodes ) {
 
	// добавляем шорткод [misha]
	$default_no_texturize_shortcodes[] = 'misha';
 
	return $default_no_texturize_shortcodes;
}

Не знаете, куда вставлять код?

Миша

Недавно я осознал, что моя миссия – способствовать распространению WordPress. Ведь WordPress – это лучший движок для разработки сайтов – как для тех, кто готов использовать заложенную структуру этой CMS, так и для тех, кто предпочитает headless решения.

Сам же я впервые познакомился с WordPress в 2009 году. Организатор WordCamp. Преподаватель в школах Epic Skills и LoftSchool.

Если вам нужна помощь с вашим сайтом или может даже разработка с нуля на WordPress / WooCommerce — пишите. Я и моя команда сделаем вам всё на лучшем уровне.