Функция 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() делает текст более читабельным и визуально приятным, преобразуя обычные символы в типографически правильные варианты, что полезно для сайтов, нацеленных на улучшенное восприятие текста.