Функция wptexturize() в WordPress: обзор, применение и примеры

# Функция WPTEXTURIZE() | WP 0.71

Функция wptexturize() заменяет некоторые символы в указанном тексте на форматированные сущности. Это позволяет сделать текст более читабельным и корректно отображать специальные символы.

## Как работает wptexturize?

Вот как преобразуются некоторые символы:

- "quoted text" превращается в “quoted text” (“quoted text”)
- 'quoted text' превращается в ‘quoted text’ (‘quoted text’)
- president's превращается в president’s (president’s)
- 12' превращается в 12′ (12′)
- ... превращается в … (…)
- (tm) превращается в ™ (™)

Некоторые символы зависят от языка сайта (локализация), например, кавычки.

Также есть список специальных фраз для преобразования. Этот список можно изменить, задав константу $wp_cockneyreplace, которая определяет ассоциативный массив с исходными строками и их заменами. По умолчанию будут заменены следующие строки:

- 'tain't
- 'twere
- 'twas
- 'tis
- 'twill
- 'til
- 'bout
- 'nuff
- 'round
- 'cause

Обратите внимание, что код внутри следующих HTML-блоков будет проигнорирован: <pre>, <code>, <kbd>, <style>, <script>, <tt>.

Если вам нужно указать специальные HTML-теги или шорткоды, для которых функция не должна работать, используйте фильтры no_texturize_tags и no_texturize_shortcodes.

### Фильтры, к которым применяется функция по умолчанию:

```php
add_filter( 'comment_author',   'wptexturize' );
add_filter( 'term_name',        'wptexturize' );
add_filter( 'link_name',        'wptexturize' );
add_filter( 'link_description', 'wptexturize' );
add_filter( 'link_notes',       'wptexturize' );
add_filter( 'bloginfo',         'wptexturize' );
add_filter( 'wp_title',         'wptexturize' );
add_filter( 'widget_title',     'wptexturize' );
add_filter( 'single_post_title',    'wptexturize' );
add_filter( 'single_cat_title',     'wptexturize' );
add_filter( 'single_tag_title',     'wptexturize' );
add_filter( 'single_month_title',   'wptexturize' );
add_filter( 'nav_menu_attr_title',  'wptexturize' );
add_filter( 'nav_menu_description', 'wptexturize' );
add_filter( 'term_description',              'wptexturize' );
add_filter( 'get_the_post_type_description', 'wptexturize' );
add_filter( 'the_title',                  'wptexturize' );
add_filter( 'the_content',                'wptexturize' );
add_filter( 'the_excerpt',                'wptexturize' );
add_filter( 'the_post_thumbnail_caption', 'wptexturize' );
add_filter( 'comment_text',               'wptexturize' );
add_filter( 'list_cats',                  'wptexturize' );
add_filter( 'widget_text_content',        'wptexturize' );
add_filter( 'the_excerpt_embed',          'wptexturize' );

Использование функции

Вызов функции производится так:

wptexturize( $text, $reset );
  • $text (string) (обязательный) — текст, который нужно отформатировать.
  • $reset (true/false) — устанавливается в true для тестирования. Паттерны будут сброшены. По умолчанию: false.

Примеры использования

Пример 1: Основное использование

Заменим символы в строке:

$text = "'---' "--" 1234" 1234' (tm) ... 1234x1234";
$new_text = wptexturize( $text );
echo $new_text;

// Результат на экране:
// на экране: ‘—’ “–” 1234″ 1234′ ™ … 1234×1234
// в коде: ‘—’ “–” 1234″ 1234′ ™ … 1234×1234

Пример 2: Как отключить форматирование текста с помощью wptexturize

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

remove_filter( 'the_content', 'wptexturize' );  // для контента постов
remove_filter( 'the_excerpt', 'wptexturize' );  // для аннотаций
remove_filter( 'comment_text', 'wptexturize' ); // для комментариев
remove_filter( 'the_title', 'wptexturize' );    // для заголовков

Заметки

  • Глобальный массив: $wp_cockneyreplace — массив форматированных сущностей для определённых распространённых фраз.
  • Глобальный массив: $shortcode_tags.

Изменения

  • С версии 0.71 — добавлена функция.

Связанные функции

  • absint()
  • add_magic_quotes()
  • antispambot()
  • backslashit()
  • balanceTags()
  • capital_P_dangit()
  • convert_smilies()
  • ent2ncr()
  • force_balance_tags()
  • links_add_target()
  • make_clickable()
  • normalize_whitespace()
  • number_format_i18n()
  • remove_accents()
  • set_url_scheme()
  • shortcode_unautop()
  • size_format()
  • strip_fragment_from_url()
  • trailingslashit()
  • untrailingslashit()
  • url_shorten()
  • user_trailingslashit()
  • utf8_uri_encode()
  • wp_convert_hr_to_bytes()
  • wp_html_excerpt()
  • wp_rel_nofollow()
  • wp_specialchars_decode()
  • wp_trim_words()
  • wpautop()
  • zeroise()

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *