convert_smilies() WP 0.71

Змінює текстові смайли у тексті на відповідні смайли-картинки.

Функція працює, тільки якщо опція “використовувати смайлики” увімкнена і глобальні змінні (масиви) ($wp_smiliessearch, $wp_smiliesreplace) зі смайликами не порожні.

Хуків немає.

Повертає

Строку. відформатований текст.

Використання

<?php convert_smilies( $text ) ?>
$text
(рядок) (обов’язковий)
Текст, в якому потрібно конвертувати смайлики.

Приклади

0

#1 Відформатуємо текст:

$text = "Текст із смайликами :) :(";

echo convert_smilies($text);

// виведе:
// Текст зі смайликами <img src='/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> <img src='/wp-includes/images/ smilies/icon_sad.gif' alt=':(' class='wp-smiley' />

нотатки

  • Global. Рядок | Масив. $wp_smiliessearch

список змін

З версії 0.71Введено.

код convert_smilies() WP 6.0.2

function convert_smilies( $text ) {
	global $wp_smiliessearch;
	$output = '';
	if ( get_option( 'use_smilies' ) && ! empty( $wp_smiliessearch ) ) {
		// HTML loop приділяється з texturize функції, може бути можливо consolidated.
		$textarr = preg_split( '/(<.*>)/U', $text, -1, PREG_SPLIT_DELIM_CAPTURE ); // Capture the tags as well as in between.
		$ stop = count ( $ textarr ); // Loop Stuff.

		// Ignore proessing of specific tags.
		$tags_to_ignore = 'code|pre|style|script|textarea';
		$ignore_block_element = '';

		for ($ i = 0; $ i < $ stop; $ i + +) {
			$content = $textarr[$i];

			// If we're in an ignore block, wait until we find its closing tag.
			if ( '' === $ignore_block_element && preg_match( '/^<(' . $tags_to_ignore . ')[^>]*>/', $content, $matches ) ) {
				$ignore_block_element = $matches[1];
			}

			// If it's not a tag і не в ignore block.
			if ( '' === $ignore_block_element && strlen( $content ) > 0 && '<' !== $content[0] ) {
				$content = preg_replace_callback( $wp_smiliessearch, 'translate_smiley', $content );
			}

			// Did we exit ignore block?
			if ( '' !== $ignore_block_element && '</' . $ignore_block_element . '>' === $content ) {
				$ignore_block_element = '';
			}

			$output .= $content;
		}
	} else {
		// Return default text.
		$output = $text;
	}
	return $output;
}

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *