# Функция convert_smilies() в WordPress
Функция convert_smilies() позволяет преобразовывать текстовые эквиваленты смайлов в изображения. Например, когда вы пишете ":)", эта функция заменяет его на соответствующий графический смайл.
## Условия работы функции
Функция будет работать только в том случае, если:
- Опция 'use_smilies' активирована (т.е. установлена в true).
- Глобальная переменная, используемая в функции, не пуста.
## Возвращаемое значение
Функция возвращает строку — текст, в котором смайлы заменены на изображения.
## Использование
Чтобы использовать функцию, напишите следующий код:
```php
$text = "Текст с эмодзи :) :(";
echo convert_smilies( $text );
Параметры функции
$text(string) — текст, из которого нужно заменить смайлы.
Пример работы функции
Если мы используем следующий код:
$text = "Текст с эмодзи :) :(";
echo convert_smilies( $text );
Результат будет таким:
Текст с эмодзи

Таким образом, текстовые смайлы ":)" и ":(" будут заменены на изображения смайлов.
Примечания
- Глобальная переменная, используемая в этой функции:
$wp_smiliessearch.
История изменений
- Функция была представлена в версии 0.71.
Код функции
Для понимания, как эта функция работает, вот её реализация:
function convert_smilies( $text ) {
global $wp_smiliessearch;
$output = '';
if ( get_option( 'use_smilies' ) && ! empty( $wp_smiliessearch ) ) {
// Разделяем текст на части, включая HTML-теги.
$textarr = preg_split( '/(<.*>)/U', $text, -1, PREG_SPLIT_DELIM_CAPTURE );
$stop = count( $textarr );
// Имеем список тегов, которые мы игнорируем.
$tags_to_ignore = 'code|pre|style|script|textarea';
$ignore_block_element = '';
for ( $i = 0; $i < $stop; $i++ ) {
$content = $textarr[ $i ];
// Если мы внутри игнорируемого блока, ждём его закрытия.
if ( '' === $ignore_block_element && preg_match( '/^<(' . $tags_to_ignore . ')[^>]*>/', $content, $matches ) ) {
$ignore_block_element = $matches[1];
}
// Если это не тег и мы не в игнорируемом блоке.
if ( '' === $ignore_block_element && strlen( $content ) > 0 && '<' !== $content[0] ) {
$content = preg_replace_callback( $wp_smiliessearch, 'translate_smiley', $content );
}
// Проверяем, вышли ли мы из игнорируемого блока.
if ( '' !== $ignore_block_element && '' . $ignore_block_element . '>' === $content ) {
$ignore_block_element = '';
}
$output .= $content;
}
} else {
// Если опция отключена, возвращаем оригинальный текст.
$output = $text;
}
return $output;
}
Эта функция сначала проверяет, активированы ли смайлы, и только потом начинает обрабатывать текст. Она игнорирует определенные HTML-теги, чтобы избежать нежелательных замен внутри них.
Связанные функции
Существует несколько других функций форматирования в WordPress, которые могут быть полезны:
absint()add_magic_quotes()antispambot()backslashit()- и многие другие.
Эти функции могут помочь в обработке текста и улучшении работы вашего сайта на WordPress.