convert_smilies()WP 0.71

Convert text equivalent of smilies to images.

Will only convert smilies if the option 'use_smilies' is true and the global used in the function isn't empty.

No Hooks.

Return

String. Converted content with text smilies replaced with images.

Usage

convert_smilies( $text );
$text(string) (required)
Content to convert smilies from text.

Examples

0

#1 Displays text with converted smilies

$text = "Text with emoticons :) :(";

echo convert_smilies( $text );

// output:
// Text with emoticons <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' />

Notes

  • Global. String|Array. $wp_smiliessearch

Changelog

Since 0.71 Introduced.

convert_smilies() code WP 6.5.2

function convert_smilies( $text ) {
	global $wp_smiliessearch;
	$output = '';
	if ( get_option( 'use_smilies' ) && ! empty( $wp_smiliessearch ) ) {
		// HTML loop taken from texturize function, could possible be 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 processing 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 and not in 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;
}