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

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

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

Спасибо!

0
Гость
9.4 года назад
  • 0
    Kama 9867

    Нужно просто установить вот этот плагин: 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: в записях, заголовках и т.д.

    Руся 9.4 года назад

    Cпасибо!

    Игорь 7 лет назад

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

    Kama 6.8 лет назад

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

    Егор 6.4 года назад

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

    add_filter( 'tiny_mce_plugins', 'disable_emojis_tinymce' );

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

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

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

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

    Комментировать
  • 0

    Установи плагин Clearfy Pro, помимо удаления эмоджи, еще чистит head от всякого мусора, лишним не будет. Пользуюсь им давно, пока не подводил

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