diff --git a/wp-includes/formatting.php b/wp-includes/formatting.php index 3dd3d73a6..5c9604443 100644 --- a/wp-includes/formatting.php +++ b/wp-includes/formatting.php @@ -618,14 +618,7 @@ function convert_smilies($text) { if (get_option('use_smilies')) { // 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 - for ($i = 0; $i < $stop; $i++) { - $content = $textarr[$i]; - if ((strlen($content) > 0) && ('<' != $content{0})) { // If it's not a tag - $content = preg_replace($wp_smiliessearch, $wp_smiliesreplace, $content); - } - $output .= $content; - } + $output = implode('', preg_replace($wp_smiliessearch, $wp_smiliesreplace, $textarr)); } else { // return default text. $output = $text; diff --git a/wp-includes/vars.php b/wp-includes/vars.php index 82c7b1001..5bf28078f 100644 --- a/wp-includes/vars.php +++ b/wp-includes/vars.php @@ -87,7 +87,7 @@ if (!isset($wpsmiliestrans)) { // generates smilies' search & replace arrays foreach($wpsmiliestrans as $smiley => $img) { - $wp_smiliessearch[] = '/(\s|^)?'.preg_quote($smiley, '/').'(\b|\s)/'; + $wp_smiliessearch[] = '/(\s|^|[^<])?'.preg_quote($smiley, '/').'(\b|\s|$)/'; $smiley_masked = htmlspecialchars( trim($smiley) , ENT_QUOTES); $wp_smiliesreplace[] = " $smiley_masked "; }