Tak więc WP 4.2 wprowadził emoji (emotikony), które w zasadzie dodają JS i inne śmieci na wszystkich twoich stronach. Coś, co niektórzy mogą uznać za szokujące. Jak można całkowicie usunąć wszystkie tego przypadki?
Podłączymy się initi usuniemy działania w następujący sposób:
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');
Będziemy potrzebować następującej funkcji filtrowania, aby wyłączyć emojikony TinyMCE:
Teraz oddychamy i udajemy, że ta funkcja nigdy nie została dodana do rdzenia ... szczególnie, gdy mnóstwo nierozwiązanych błędów jest jeszcze zaimplementowanych.
Dzięki! Nie jestem pewien, dlaczego nie tylko pozwolili ludziom włączyć / wyłączyć tę funkcję, Settings -> Writingale jest to zdecydowanie denerwujące. +1
Howdy_McGee
6
Czekamy na Twoją wtyczkę „Wyłącz emojicony” w repozytorium lub
Dzięki temu ładnie usuwa kod - dziwnie moje strony ładują się o 2 do 3 sekund dłużej, aby załadować to w moich functions.php niż bez niego.
Steve
To powinno działać przez init. Zobacz moją odpowiedź .
Christine Cooper
2
Jeśli chcesz, aby zapobiec automatycznemu Wordpress konwersji starych buźki szkoła ASCII na Unicode emotikony (jak ;-)do 😉) w swoich postach całkowicie, może chceszremove_filter('the_content', 'convert_smilies')
(Nie jestem w 100% pewien, że o to właśnie chodzi, ale to rozwiązało mój problem i mam nadzieję, że może się przydać).
Czy poprawnie przetestowałeś kod w mojej odpowiedzi?
Christine Cooper
tak, próbowałem wiele razy, strona jest na serwerze cloudflare-nginx
johnhgaspay
Po prostu dwukrotnie sprawdziłem mój kod i działa. Po dodaniu kodu do pliku functions.php spróbuj ustawić wyższy priorytet, tak jak poniżej:add_action( 'init', 'disable_wp_emojicons', 3 );
Wygląda na to, że bilet nr 32102 jest zamknięty przez wontfix . +1 za próbę i optymizm ;-)
pan
2
ps: o ile rozumiem twój bilet nr 38252 został zamknięty, ponieważ był duplikatem biletu nr 32102, który wcześniej był zamknięty jako poprawka wont. Wygląda więc na to, że wtyczki będą musiały to załatwić przez wiele dni ;-) Dlatego
głosujcie
-2
Ponieważ emoji WordPress są obsługiwane przez sworg i nie są kompresowane, wpływa to na czas ładowania SVG w zależności od liczby używanych emoji, a nawet może generować ostrzeżenia w narzędziu Google PageSpeed Insights.
Aby rozwiązać ten problem, możesz wyświetlać emoji bezpośrednio z samej witryny WordPress, a nie wykonując połączenia zewnętrzne za pośrednictwem js.
Można to osiągnąć, instalując wtyczkę Emoji skompresowane, która jest dostępna bezpłatnie w repozytorium wtyczek WordPress.org.
Gdy wtyczka jest aktywowana, kompresja oferuje oszczędności w zakresie od 3kb ~ 1.3kb (około 60%) na emoji.
Odpowiedzi:
Podłączymy się
init
i usuniemy działania w następujący sposób:Będziemy potrzebować następującej funkcji filtrowania, aby wyłączyć emojikony TinyMCE:
Teraz oddychamy i udajemy, że ta funkcja nigdy nie została dodana do rdzenia ... szczególnie, gdy mnóstwo nierozwiązanych błędów jest jeszcze zaimplementowanych.
Jest to dostępne jako wtyczka Wyłącz emoji .
Alternatywnie możesz zastąpić uśmieszki oryginalnymi wersjami poprzednich wersji WordPressa za pomocą klasycznych uśmieszków .
Aktualizacja
Możemy również usunąć
emoji_svg_url
pobranie wstępne DNS, zwracając wartość false w filtrze (dzięki @yobddigi):źródło
Settings -> Writing
ale jest to zdecydowanie denerwujące. +1Lepsze rozwiązanie, jeśli chcesz to wyłączyć: użyj wtyczki.
Taki sam kod jak w komentarzach Christine: https://wordpress.org/plugins/disable-emojis/
Ten sam kod, który także naprawia uśmieszki, które są starsze: https://wordpress.org/plugins/classic-smilies/
Źródło: Ja, odkąd napisałem ten kod. https://plugins.trac.wordpress.org/changeset/1142480/classic-smilies
źródło
Jest to prosty sposób na usunięcie emoji. Dodaj poniższy kod do swojego
function.php
źródło
init
. Zobacz moją odpowiedź .Jeśli chcesz, aby zapobiec automatycznemu Wordpress konwersji starych buźki szkoła ASCII na Unicode emotikony (jak
;-)
do😉
) w swoich postach całkowicie, może chceszremove_filter('the_content', 'convert_smilies')
(Nie jestem w 100% pewien, że o to właśnie chodzi, ale to rozwiązało mój problem i mam nadzieję, że może się przydać).
źródło
Próbowałem kilka kodów powyżej, ale jedyne kody działają po mojej stronie to ten.
Nie zapomnij wykonać kopii zapasowej pliku functions.php przed zaimplementowaniem tych kodów.
źródło
add_action( 'init', 'disable_wp_emojicons', 3 );
Dobra wiadomość, dodałem żądanie funkcji:
Wprowadź nową opcję do WordPress WP_EMOICONS tutaj https://core.trac.wordpress.org/ticket/38252
i najwyraźniej zostało to oznaczone jako duplikat https://core.trac.wordpress.org/ticket/32102, więc możemy spodziewać się czegoś takiego
w przyszłych wersjach WordPress.
źródło
Ponieważ emoji WordPress są obsługiwane przez sworg i nie są kompresowane, wpływa to na czas ładowania SVG w zależności od liczby używanych emoji, a nawet może generować ostrzeżenia w narzędziu Google PageSpeed Insights.
Aby rozwiązać ten problem, możesz wyświetlać emoji bezpośrednio z samej witryny WordPress, a nie wykonując połączenia zewnętrzne za pośrednictwem js.
Można to osiągnąć, instalując wtyczkę Emoji skompresowane, która jest dostępna bezpłatnie w repozytorium wtyczek WordPress.org.
Gdy wtyczka jest aktywowana, kompresja oferuje oszczędności w zakresie od 3kb ~ 1.3kb (około 60%) na emoji.
Źródło: WPTavern
źródło