ปิดใช้งานอิโมจิคอนที่แนะนำด้วย WP 4.2


135

ดังนั้น WP 4.2 แนะนำ emojis (smileys) ที่เพิ่ม JS และขยะอื่น ๆ ลงบนหน้าเว็บของคุณ บางสิ่งบางคนอาจพบว่าตกตะลึง ใครจะลบกรณีนี้ทั้งหมดได้อย่างสมบูรณ์?


39
ฉันตกใจมากจนเกือบจะยุบตัวในเก้าอี้เมื่อฉันอ่านประกาศ
Tom J Nowell

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' );

เราจะต้องใช้ฟังก์ชันตัวกรองต่อไปนี้เพื่อปิดใช้งาน emojicons TinyMCE:

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

ตอนนี้เราสูดดมและแกล้งทำเป็นว่าคุณสมบัตินี้ไม่เคยถูกเพิ่มเข้าไปในแกนหลัก ... โดยเฉพาะอย่างยิ่งในขณะที่ข้อบกพร่องที่ได้รับการแก้ไขจำนวนมากยังไม่ได้ถูกนำมาใช้

นี้สามารถใช้ได้เป็นปลั๊กอินปิดการใช้งาน Emojis

หรือคุณสามารถแทนที่รอยยิ้มกับรุ่นเดิมจากรุ่นก่อนหน้าของ WordPress ใช้คลาสสิกรูปรอยยิ้ม

ปรับปรุง

นอกจากนี้เรายังสามารถลบการดึงข้อมูล DNS ล่วงหน้าโดยส่งกลับค่าเท็จในตัวกรองemoji_svg_url(ขอบคุณ @yobddigi):

add_filter( 'emoji_svg_url', '__return_false' );

25
ขอบคุณ! ฉันไม่แน่ใจว่าทำไมพวกเขาไม่อนุญาตให้ผู้ใช้เปิด / ปิดการใช้งานผ่านทางนี้Settings -> Writingแต่มันน่ารำคาญอย่างแน่นอน +1
Howdy_McGee

6
หวังว่าจะได้ปลั๊กอิน "ปิดใช้งานอิโมจิคอน" ของคุณใน repo หรือ github ;-)
birgire

3
มีคู่ของพวกเขาแล้ว (ซึ่งเป็นสำเนา) wordpress.org/plugins/classic-smilies wordpress.org/plugins/disable-emojis
pcarvalho

3
ขอบคุณสำหรับคำตอบ! ฉันไม่อยากจะเชื่อเลยว่านี่เป็นส่วนหนึ่งของหลักอย่างน้อยก็ไม่ใช่ด้วย "การเลือกใช้" หรือวิธีปิดการใช้งาน ~ _ ~
phatskat

5
และน่าตกใจที่เห็นว่าพวกเขาเพิ่มสคริปต์และสไตล์ที่มีมูลค่า 114 บรรทัดในส่วนหัวที่ไม่ได้ลดขนาดลง ขอบคุณสำหรับปลั๊กอิน ...
Debajyoti Das

28

ทางออกที่ดีกว่าถ้าคุณต้องการปิดการใช้งานนี้: ใช้ปลั๊กอิน

รหัสเดียวกันกับจากความคิดเห็นของ Christine: https://wordpress.org/plugins/disable-emojis/

รหัสเดียวกันกับที่แก้ไข smilies ให้เป็นรุ่นเก่า: https://wordpress.org/plugins/classic-smilies/

ที่มา: ฉันตั้งแต่ฉันเขียนโค้ดนั้นตั้งแต่แรก https://plugins.trac.wordpress.org/changeset/1142480/classic-smilies


ดี! แม้ว่าฉันจะเจอฟังก์ชั่นผ่านทางรายการ GitHub ฉันได้อัปเดตคำตอบของฉันด้วยลิงก์ปลั๊กอินเหล่านี้แล้ว ขอบคุณ!
Christine Cooper

ใช่คุณอาจทำ ฉันใส่มันใน Github ด้วยสำหรับผู้ใช้ Twitter: gist.github.com/Otto42/b79ff5428993fcff45bb
Otto

14

นี่เป็นวิธีที่ง่ายในการลบอีโมจิ เพิ่มรหัสร้องให้ของคุณfunction.php

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

2
คำถามนี้ได้กล่าวถึงแล้วข้างต้น
Christine Cooper

ขอบคุณนี้ลบรหัสอย่าง - หน้าของฉันแปลกใช้เวลา 2 ถึง 3 วินาทีอีกต่อไปเพื่อโหลดกับมันในฟังก์ชั่นของฉัน PHP กว่าโดยไม่ต้องมัน
Steve

initนี้ควรจะทำงานผ่านทาง ดูของฉันคำตอบ
Christine Cooper

2

หากคุณต้องการที่จะป้องกันไม่ให้ Wordpress จากการแปลงรอยยิ้มโรงเรียน ASCII เก่าของคุณเป็น Unicode อีโมจิ (เช่นโดยอัตโนมัติ;-)ไป😉) ในข้อความของคุณทั้งหมดที่คุณอาจต้องการremove_filter('the_content', 'convert_smilies')

(ไม่แน่ใจ 100% ว่าคำถามนี้เกี่ยวกับอะไร แต่การแก้ไขปัญหาของฉันและฉันหวังว่ามันจะมีประโยชน์สำหรับใครบางคน)


0

ฉันได้ลองใช้รหัสด้านบนแล้ว แต่รหัสเดียวที่ใช้ได้ในตอนท้ายของฉันคือรหัสนี้

อย่าลืมสำรองข้อมูลฟังก์ชั่นของคุณก่อนใช้งานรหัสเหล่านี้

// 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' );

คุณทดสอบรหัสในคำตอบของฉันถูกต้องหรือไม่
Christine Cooper

ใช่ฉันได้พยายามมาหลายครั้ง, เว็บไซต์อยู่บน CloudFlare-Nginx เซิร์ฟเวอร์
johnhgaspay

เพียงตรวจสอบรหัสของฉันสองครั้งและมันใช้งานได้ เมื่อคุณเพิ่มรหัสลงในไฟล์ functions.php ของคุณให้ลองตั้งค่าลำดับความสำคัญที่สูงขึ้นเช่นนี้add_action( 'init', 'disable_wp_emojicons', 3 );
Christine Cooper

-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 emoji ให้บริการจาก sworg และไม่ถูกบีบอัดนี่จะมีผลต่อเวลาในการโหลด SVG ขึ้นอยู่กับจำนวน emoji ที่คุณใช้และยังสามารถส่งคำเตือนบนเครื่องมือ PageSpeed ​​Insights ของ Google

ในการแก้ไขปัญหานี้คุณสามารถให้บริการอิโมจิโดยตรงจากไซต์ WordPress ของคุณเองและไม่ต้องทำการโทรภายนอกผ่าน js

สิ่งนี้สามารถทำได้โดยการติดตั้งปลั๊กอินบีบอัด Emojiซึ่งสามารถใช้ได้ฟรีในที่เก็บปลั๊กอิน WordPress.org

เมื่อเปิดใช้งานปลั๊กอินการบีบอัดจะประหยัดได้ในช่วง 3kb ~ 1.3kb (ประมาณ% 60) ต่ออีโมจิ

ที่มา: WPTavern

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.