WordPress как на ладони
rgbcode is looking for WordPress developers.

Как отключить Emoji в wordPress?

C версии 4.2. в wordPress появились эти самые Emoji - смайлики, эмоции или как их там еще назвать-то. Кое где я их использую, а на некоторых сайтах они совершенно не нужны.

А там дополнительный скрипт подключается и может что-то еще. Так вот вопрос в том, как мне полностью отключить подключение всего что связано с этими Emoji - смайликами?

Спасибо!

0
Гость
8.6 лет назад
  • 0
    Kama9752

    Нужно просто установить вот этот плагин: Disable Emojis

    Или можно воспользоваться следующим кодом, который нужно поместить в файл темы functions.php:

    // `Disable Emojis` Plugin Version: 1.7.2
    if( 'Отключаем Emojis в WordPress' ){
    
    	/**
    	 * Disable the emoji's
    	 */
    	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_filter( 'tiny_mce_plugins', 'disable_emojis_tinymce' );
    		add_filter( 'wp_resource_hints', 'disable_emojis_remove_dns_prefetch', 10, 2 );
    	}
    	add_action( 'init', 'disable_emojis' );
    
    	/**
    	 * Filter function used to remove the tinymce emoji plugin.
    	 * 
    	 * @param    array  $plugins  
    	 * @return   array             Difference betwen the two arrays
    	 */
    	function disable_emojis_tinymce( $plugins ) {
    		if ( is_array( $plugins ) ) {
    			return array_diff( $plugins, array( 'wpemoji' ) );
    		}
    
    		return array();
    	}
    
    	/**
    	 * Remove emoji CDN hostname from DNS prefetching hints.
    	 *
    	 * @param  array  $urls          URLs to print for resource hints.
    	 * @param  string $relation_type The relation type the URLs are printed for.
    	 * @return array                 Difference betwen the two arrays.
    	 */
    	function disable_emojis_remove_dns_prefetch( $urls, $relation_type ) {
    
    		if ( 'dns-prefetch' == $relation_type ) {
    
    			// Strip out any URLs referencing the WordPress.org emoji location
    			$emoji_svg_url_bit = 'https://s.w.org/images/core/emoji/';
    			foreach ( $urls as $key => $url ) {
    				if ( strpos( $url, $emoji_svg_url_bit ) !== false ) {
    					unset( $urls[$key] );
    				}
    			}
    
    		}
    
    		return $urls;
    	}
    
    }

    Еще стоит заметить, что с введением emoji кодировка всех строковых данных в базе данных была изменена на utf8mb4. Нужно это для поддержки таких смайликов.

    Этот код и плагин Disable Emojis отключат только смайлики и не меняю кодировку. А это значит, что emoji смайлики можно по-прежнему использовать повсюду в WordPress: в записях, заголовках и т.д.

    Руся 8.6 лет назад

    Cпасибо!

    Игорь 6.2 года назад

    Все бы ничего, но после вставки этого кода, сайт стал грузиться на секунду дольше. Без него 453ms, а с ним 1.45s

    Kama 6.1 год назад

    Очень странно, точно этот код виноват? Disable Emojis плагин попробуй поставить, он простенький и то что надо.

    Егор 5.6 лет назад

    Большое спасибо за код. Он действительно убрал эмоджи, но вот эта строка

    add_filter( 'tiny_mce_plugins', 'disable_emojis_tinymce' );

    в визуальном редакторе убирает многие кнопки (списки, линк-анлинк, тег далее, цвет текста, вставить как текст, произвольный символ, горячие клавиши).

    Сразу не заметил. Несколько дней бился с установкой-переустановкой вордпресса разных версий, устанавливал плагины редакторов, копался с тинимсе и классик-эдитор.пхп - все без толку.

    Пока не начала перебирать все файлы темы из бэкапа и не добрался до функшинс.пхп. Дошел до этого кода и там уже интуитивно убрал одну эту строку и все заработало как раньше.

    Может пригодится мой опыт и сэкономлю массу времени, сил и нервов.

    Комментировать
На вопросы могут отвечать только зарегистрированные пользователи. Вход . Регистрация