WordPress как на ладони
wordpress jino

wp_encode_emoji() WP 4.2.0

Конвертирует эмодзи (emoji) символы в переданной строке в их HTML код (&#x1f31b).

Эмодзи (emoji) - это общепринятые (имеющие спецификацию и поддерживающиеся многими устройствами) картинки-смайлики в кодировке utf-8mb4, введенные в WordPress с версии 4.2. Например: ? ? ? ❄.

На апрель 2015 года поддерживаются не все смайлики и для отображения нераспознаваемых смайлов в браузере, используется специальный скрипт.

Такие символы-смайлики требует специальную кодировку utf8mb4 при размещении их в БД, в противном случает символ не будет распознан и не сохраниться правильно. Конвертация с помощью wp_encode_emoji() позволяет сохранять эти символы в неподходящей для них кодировке utf8, где они сохраняются не как символы, а как их соответствующий код.

Кодировка utf-8 сама по себе поддерживает некоторые из иконок эмодзи, но далеко не все.

Используется в: wp_staticize_emoji().
✈ 1 раз = 0.00028с = быстро | 50000 раз = 8.13с = быстро

Хуков нет.

Возвращает

Строку, в которой символы-смайлики заменены на соответствующие HTML сущности.

Использование

wp_encode_emoji( $content );
$content(строка) (обязательный)
Строка, символы в которой нужно заменить.

Примеры

#1 Демонстрация замены символов-смайликов в строке на HTML сущности

$str = '😃 😁 😝 ❄ 😇';

$str = wp_encode_emoji( $str );

// $str теперь равен: 🌛 🌌 🍦 ❄ &#x1f36a

Код wp encode emoji: wp-includes/formatting.php WP 4.9

<?php
function wp_encode_emoji( $content ) {
	$emoji = _wp_emoji_list( 'partials' );

	foreach ( $emoji as $emojum ) {
		if ( version_compare( phpversion(), '5.4', '<' ) ) {
			$emoji_char = html_entity_decode( $emojum, ENT_COMPAT, 'UTF-8' );
		} else {
			$emoji_char = html_entity_decode( $emojum );
		}
		if ( false !== strpos( $content, $emoji_char ) ) {
			$content = preg_replace( "/$emoji_char/", $emojum, $content );
		}
	}

	return $content;
}

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

Из метки: эмодзи (emoji)

wp_encode_emoji 4 комментария
  • campusboy1946 cайт: www.youtube.com/c/wpplus

    Есть ли вариант их вообще отключить на сайте? Далеко не везде они нужны, но WP старательно добавляет код в тему.

    Ответить2.3 года назад #
    • campusboy1946 cайт: www.youtube.com/c/wpplus

      Есть плагин Disable Emojis - активировал и забыл. А можно кодом (взято из плагина) в functions.php:

      /* Отключение Emoji смайликов в WordPress без плагина */
      if (!function_exists(disable_emojis)) {
      	function disable_emojis() {
      		remove_action( 'wp_head', 'print_emoji_detection_script', 7 );
      		remove_action( 'admin_print_scripts', 'print_emoji_detection_script' );
      		remove_action( 'wp_print_styles', 'print_emoji_styles' );
      		remove_action( 'admin_print_styles', 'print_emoji_styles' );
      		remove_filter( 'the_content_feed', 'wp_staticize_emoji' );
      		remove_filter( 'comment_text_rss', 'wp_staticize_emoji' );
      		remove_filter( 'wp_mail', 'wp_staticize_emoji_for_email' );
      	}
      	add_action( 'init', 'disable_emojis' );
      }
      1
      Ответить2.3 года назад #
      • Игорь cайт: kuhnyagali.ru

        Почему то у меня не работает код ((

        Ответить2 года назад #
  • Игорь cайт: kuhnyagali.ru

    Прошу прощения, вставил на один сайт, а смотрел другой. Вроде работает.

    Ответить2 года назад #

Здравствуйте, !

Ваш комментарий