Отключить смайлики, представленные в WP 4.2


135

Поэтому в WP 4.2 были представлены смайлики (смайлики), которые в основном добавляют JS и другой мусор на все ваши страницы. Что-то, что некоторые люди могут найти шокирующим. Как полностью стереть все случаи этого?


39
Я был так потрясен, что чуть не рухнул на стуле, когда прочитал объявление
Том Дж. Новелл

2
o_O ... 9_9 ...>: - (
cjbj

Ответы:


193

Мы подключим initи удалим следующие действия:

function disable_wp_emojicons() {

  // all actions related to emojis
  remove_action( 'admin_print_styles', 'print_emoji_styles' );
  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_filter( 'wp_mail', 'wp_staticize_emoji_for_email' );
  remove_filter( 'the_content_feed', 'wp_staticize_emoji' );
  remove_filter( 'comment_text_rss', 'wp_staticize_emoji' );

  // filter to remove TinyMCE emojis
  add_filter( 'tiny_mce_plugins', 'disable_emojicons_tinymce' );
}
add_action( 'init', 'disable_wp_emojicons' );

Нам понадобится следующая функция фильтра для отключения смайликов TinyMCE:

function disable_emojicons_tinymce( $plugins ) {
  if ( is_array( $plugins ) ) {
    return array_diff( $plugins, array( 'wpemoji' ) );
  } else {
    return array();
  }
}

Теперь мы дышим , и делать вид , эта функция никогда не добавляется в сердцевину ... особенно в то время как тонны решенных багов еще предстоит выполнить.

Это доступно как плагин, отключить Emojis .

Кроме того, вы можете заменить смайлики исходными версиями из предыдущих версий WordPress, используя классические смайлики .

Обновить

Мы также можем удалить предварительную emoji_svg_urlвыборку DNS, вернув false на фильтре (спасибо @yobddigi):

add_filter( 'emoji_svg_url', '__return_false' );

25
Спасибо! Я не уверен, почему они не просто позволили людям включать / отключать это через, Settings -> Writingно это определенно раздражает. +1
Howdy_McGee

6
С нетерпением ждем вашего плагина «Отключить смайлики» в репозитории или github ;-)
birgire

3
уже есть пара из них (это копия) wordpress.org/plugins/classic-smilies wordpress.org/plugins/disable-emojis
pcarvalho

3
Спасибо за ответ! Я не могу поверить, что это является частью ядра, по крайней мере, не с «opt-in» или способом отключить его ~ _ ~
phatskat

5
И шокирует то, что они добавляют в заголовок 114 строк и сценариев и стилей, которые даже не уменьшены. Спасибо за плагин ...
Debajyoti Das

28

Лучшее решение, если вы хотите отключить это: используйте плагин.

Тот же код, что и в комментариях Кристины: https://wordpress.org/plugins/disable-emojis/

Тот же код, который также исправляет смайлики, чтобы они были более старыми: https://wordpress.org/plugins/classic-smilies/

Источник: Я, так как я написал этот код в первую очередь. https://plugins.trac.wordpress.org/changeset/1142480/classic-smilies


Приятно! Хотя через функции github я наткнулся на функции. Я обновил свой ответ этими ссылками на плагин. Спасибо!
Кристина Купер

Да, вы, вероятно, сделали. Я также поместил его на github для пользователя твиттера: gist.github.com/Otto42/b79ff5428993fcff45bb
Отто

14

Это простой способ удалить смайлики. Добавьте ниже код к вашемуfunction.php

remove_action( 'wp_head', 'print_emoji_detection_script', 7 );
remove_action( 'wp_print_styles', 'print_emoji_styles' ); 

2
Об этом уже говорилось в моем вопросе выше.
Кристина Купер

Спасибо, это удаляет код красиво - как ни странно, мои страницы загружаются с этим в моем файле functions.php на 2-3 секунды дольше, чем без него.
Стив

Это должно пройти через init. Смотри мой ответ .
Кристина Купер

2

Если вы хотите , чтобы предотвратить Wordpress от автоматического преобразования старых школ ASCII смайлов Unicode Emojis (как ;-)к 😉) в ваших сообщениях в целом, вы можетеremove_filter('the_content', 'convert_smilies')

(Не на 100% уверен, что это вопрос, но это решило мою проблему, и я надеюсь, что это кому-то пригодится.)


0

Я пробовал некоторые коды выше, но единственные коды работают на моем конце, это один.

Не забудьте сделать резервную копию вашего functions.php перед реализацией этих кодов.

// REMOVE WP EMOJI
remove_action('wp_head', 'print_emoji_detection_script', 7);
remove_action('wp_print_styles', 'print_emoji_styles');

remove_action( 'admin_print_scripts', 'print_emoji_detection_script' );
remove_action( 'admin_print_styles', 'print_emoji_styles' );

Вы правильно протестировали код в моем ответе?
Кристина Купер

да, я пробовал это много раз, сайт находится на сервере cloudflare-nginx
johnhgaspay

Просто дважды проверил мой код, и он работает. Когда вы добавляете код в свой файл functions.php, попробуйте установить более высокий приоритет, например так:add_action( 'init', 'disable_wp_emojicons', 3 );
Кристина Купер

-1

Хорошие новости, я добавил запрос функции:

Введите новую опцию для WordPress WP_EMOICONS здесь https://core.trac.wordpress.org/ticket/38252

и, по-видимому, это было отмечено как дубликат https://core.trac.wordpress.org/ticket/32102, поэтому мы можем ожидать что-то вроде

define( 'WP_EMOICONS', false );

в будущих выпусках WordPress.


1
Похоже, билет № 32102 закрыт с wontfix . +1 за то, что пытался быть оптимистичным ;-)
birgire

2
ps: насколько я понимаю, твой билет # 38252 был закрыт, потому что он был дубликатом для билета # 32102, который ранее был закрыт как wontfix. Таким образом, похоже, что плагины должны будут разобраться с этим в ближайшие дни ;-) Поэтому проголосуйте за то, что вы так оптимистичны ;-)
birgire

-2

Так как смайлики WordPress обслуживаются из sworg и не сжимаются, это влияет на время загрузки SVG в зависимости от того, сколько смайликов вы используете, и даже может выдавать предупреждения в инструменте Google PageSpeed ​​Insights.

Чтобы решить эту проблему, вы можете подавать смайлики непосредственно с вашего сайта WordPress, а не делать внешние звонки через js.

Этого можно достичь, установив плагин Compressed Emoji, который бесплатно доступен в хранилище плагинов WordPress.org.

Когда плагин активирован, сжатие обеспечивает экономию в диапазоне от 3 до 1,3 КБ (примерно 60%) на один смайлик.

Источник: WPTavern

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.