WordPress でテキストが勝手に絵文字に変換されるのを止める

他の人からの話題でこのブログの少し古い記事が流れてきたので

さっと流して読んでみたんだけど、自分で書いたはずなのに何だか見慣れない部分があった。

emoji_1

emoji_2

絵文字。絵文字になっている。絵文字使った覚えなんてない。

WordPress が絵文字に対応

そういえばリリースノートを見ただけで自分に直接は関係ないかと思ってたんだけど、WordPress 4.2 から絵文字が使えるようになったんだった。

WordPress › 日本語 « WordPress 4.2 “Powell”

WordPress で絵文字が利用可能になりました。工夫して、💙 や 🐸、🐒、🍕、その他多くの絵文字でコンテンツを飾りましょう。

これはいいと思います。絵文字を使いたい人が絵文字を使えるようになったというだけのことで、このことで幸せになる人はいてもたぶん不幸になる人はいない。

画像に変換される

ただ、WordPress はこれ以上のことをしてくれてるみたいです。絵文字をさらに画像に差し換えて表示している。

たぶんプラットフォームによる絵文字の違いを吸収するためだと思うんだけど、違ったら指摘してください。

ともかくこれが今回の原因のようです。

絵文字じゃないものも変換された

意図的に絵文字を入力して、それが画像に差し替わるんならまだいいんだけど、前掲の記事にあるは、少なくともこれを書いたときに「絵文字」として使ったわけではないんだ。

確かに感嘆符疑問符 ⁉ は絵文字スタイルを取れる文字として Unicode に収録されてて

例えば Mac OS だと「編集」>「絵文字と記号」から入力できる絵文字の中にも入ってます。

だからこれが絵文字として扱われることが必ずしも間違いだとは思わないんだけど、ともかくこれは書いた時に意図したものとは違うので止めたい。

手っ取り早く絵文字画像変換を止める方法

プラグインが公開されてました。

これを入れて有効化するのが一番手っ取り早いと思います。

あるいはこれに倣って functions.php 等にこんな具合に書くか。

/// PHP 5.2.*
function disable_emojis() {
    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_action( 'admin_print_styles', 'print_emoji_styles' );    
    remove_filter( 'the_content_feed', 'wp_staticize_emoji' );
    remove_filter( 'comment_text_rss', 'wp_staticize_emoji' );  
    remove_filter( 'wp_mail', 'wp_staticize_emoji_for_email' );
    add_filter( 'tiny_mce_plugins', 'disable_emojis_tinymce' );
}
add_action( 'init', 'disable_emojis' );

PHP 5.3 以降の環境だとこっちの方が楽か。

// PHP 5.3 以降
add_action( 'init', function () {
    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_action( 'admin_print_styles', 'print_emoji_styles' );    
    remove_filter( 'the_content_feed', 'wp_staticize_emoji' );
    remove_filter( 'comment_text_rss', 'wp_staticize_emoji' );  
    remove_filter( 'wp_mail', 'wp_staticize_emoji_for_email' );
    add_filter( 'tiny_mce_plugins', 'disable_emojis_tinymce' );
} );

Disable Emojis のレビュー

前述の Disable Emojis プラグインですけど、これを書いている時点で

Disable Emojis review

35人中35人が星5つの評価。レビューのコメントを見ても、賛辞の嵐です。

絵文字が使えるのは楽しいし、いろんなプラットフォームで同じように表示されると統一感が出ていいと思うんだけど、その機能を無効にするためのプラグインが大人気であるということもまた事実なので、今後このへんの塩梅がうまい具合に取れるといいですね❗️

  • このエントリーをはてなブックマークに追加