Відключити смайлики, запроваджені за допомогою 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 за допомогою Classic Smilies .

Оновлення

Ми також можемо видалити попередню вибір DNS, повернувши помилку на фільтр emoji_svg_url(спасибі @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
Дякую за відповідь! Я не можу повірити, що це частина основної принаймні, принаймні, не з "відключенням" чи способом відключити його ~ _ ~
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 для користувача twitter: 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
Це вже було висвітлено у моєму запитанні вище.
Крістін Купер

Завдяки цьому прекрасно видаляється код - як не дивно, мої сторінки займають 2–3 секунди довше, щоб завантажувати це в моїх функціях.php, ніж без нього.
Стів

Це має працювати через init. Дивіться мою відповідь .
Крістін Купер

2

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

(Не на 100% впевнений, що це питання, але це вирішило мою проблему, і я сподіваюся, що це може бути зручно для когось.)


0

Я спробував кілька кодів вище, але єдиний код працює на моєму кінці - це цей.

Не забудьте створити резервну копію своїх function.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

Просто двічі перевірив мій код, і він працює. Коли ви додасте код у свій файл function.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, який раніше був закритий у якості виправлення. Так виглядає, що плагінам доведеться розібратися в цьому, на наступні дні ;-) Отже, голосування за те, що ви такі оптимістичні ;-)
birgire

-2

Оскільки смайли WordPress подаються від sworg і вони не стискаються, це впливає на час завантаження SVG залежно від того, скільки емоджи ви використовуєте, і навіть може кидати попередження на інструмент Google PageSpeed ​​Insights Google.

Щоб вирішити цю проблему, ви можете обслуговувати смайли безпосередньо з вашого веб-сайту WordPress, а не здійснювати зовнішні дзвінки через js.

Цього можна досягти, встановивши плагін Compression Emoji, який безкоштовно доступний у сховищі плагінів WordPress.org.

Коли плагін активований, стиснення пропонує економію в діапазоні від 3 кб ~ 1,3 кБ (приблизно 60%) на емоції.

Джерело: WPTavern

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.