問題描述

所以 WP 4.2 引入了 emojis(笑臉),它基本上新增了 JS 和其他垃圾遍及你的頁面。有些人可能會感到震驚。如何完全清除所有這些例項?

最佳解決方案

我們將鉤入 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 emojicons:

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

現在我們呼吸,假裝這個功能從來沒有新增到核心… 特別是在解決了大量的 bug 的時候,yet 被實現。

這可以作為一個外掛 Disable Emojis

或者,您可以使用 Classic Smilies 將以前版本的 WordPress 的原始版本替換為表情符號。

Update

我們也可以透過在過濾器 emoji_svg_url 上返回 false 來刪除 DNS 預取 (感謝 @yobddigi):

add_filter( 'emoji_svg_url', '__return_false' );

次佳解決方案

如果你想停用這個更好的解決方案:使用一個外掛。

與克里斯汀的評論相同的程式碼:https://wordpress.org/plugins/disable-emojis/

相同的程式碼,也修復了表情符號是舊的:https://wordpress.org/plugins/classic-smilies/

資料來源:我,因為我寫的那個程式碼在第一位。 https://plugins.trac.wordpress.org/changeset/1142480/classic-smilies

第三種解決方案

這是刪除表情符號的簡單方式。將下面的程式碼新增到 function.php

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

參考文獻

注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。