Функция wptexturize()
в WordPress автоматически преобразует некоторые символы в более удобочитаемые и визуально приятные HTML-сущности. Это улучшает внешний вид текста и делает его более профессиональным и соответствующим типографическим стандартам.
wptexturize( string $text, bool $reset = false ): string
Параметры
$text
(обязательный): Строка текста, которую нужно отформатировать.$reset
(необязательный): Если установлен вtrue
, сбрасывает шаблоны для unit-тестирования. По умолчанию —false
.
Возвращаемое значение
Возвращает строку с отформатированными текстовыми сущностями, такими как «умные» кавычки, длинные тире, символы товарного знака и пр.
Как работает wptexturize()
Функция wptexturize()
заменяет обычные символы на HTML-сущности. Например, стандартные двойные и одиночные кавычки автоматически преобразуются в «умные» кавычки, дефисы — в тире, а многоточия — в символы многоточий.
Пример 1: Базовое использование
Форматируем строку, чтобы преобразовать кавычки, тире и другие символы в типографские аналоги.
$text = "'Вот это текст' с \"кавычками\", дефисами --- и многоточием...";
$new_text = wptexturize($text);
echo $new_text;
Результат:
‘Вот это текст’ с “кавычками”, дефисами — и многоточием…
Здесь wptexturize()
преобразует обычные кавычки и дефисы в типографически правильные символы.
Пример 2: Преобразование чисел и математических символов
Добавляем к тексту математические и специальные символы, такие как знак умножения, знак товарного знака, одинарные и двойные штрихи.
$example_text = "Размер 50x50, 1' = 12\" и (tm)";
echo wptexturize($example_text);
Результат:
Размер 50×50, 1′ = 12″ и ™
В данном случае wptexturize()
преобразует символ x
в знак умножения ×
, одинарные и двойные штрихи — в соответствующие символы штриха и дюйма.
Пример 3: Отключение форматирования текста в отдельных элементах
wptexturize()
не применяется к тексту внутри HTML-блоков <pre>
, <code>
, <kbd>
, <style>
, <script>
, <tt>
, а также в шорткодах, таких как [code]
. Это можно использовать для сохранения исходного форматирования.
$text = "Внешний текст 'преобразуется' <code>'а тут останется как есть'</code>";
echo wptexturize($text);
Результат:
Внешний текст ‘преобразуется’ <code>'а тут останется как есть'</code>
Текст в <code>
остается неизменным, в то время как внешний текст преобразован.
Пример 4: Отключение фильтров wptexturize для определенных частей сайта
Чтобы wptexturize()
не применялась к определенному содержимому, можно отключить ее с помощью функции remove_filter()
:
remove_filter('the_content', 'wptexturize'); // Отключение в содержимом постов
remove_filter('the_excerpt', 'wptexturize'); // Отключение в анонсах
remove_filter('comment_text', 'wptexturize'); // Отключение в комментариях
remove_filter('the_title', 'wptexturize'); // Отключение в заголовках
Примеры преобразования символов
Исходный текст | Преобразованный текст | Название символа |
---|---|---|
--- | — | длинное тире (em-dash) |
-- | – | среднее тире (en-dash) |
(tm) | ™ | символ торговой марки |
1234' | 1234′ | штрих (prime) |
1234x1234 | 1234×1234 | знак умножения |
Полезные советы
- Применение после
init
: Рекомендуется вызыватьwptexturize()
после хукаinit
, иначе может возникнуть ошибка при форматировании. - Исключение тегов и шорткодов: Используйте фильтры
no_texturize_tags
иno_texturize_shortcodes
, чтобы указать теги и шорткоды, которые следует исключить из форматирования. - Настройка кавычек: Кавычки и другие символы могут быть настроены в зависимости от языковой локализации WordPress.
Заключение
Функция wptexturize()
делает текст более читабельным и визуально приятным, преобразуя обычные символы в типографически правильные варианты, что полезно для сайтов, нацеленных на улучшенное восприятие текста.