その前に前提のお話
絵文字を扱う前に、知っておきたい知識です。
絵文字は、WordPressは4.2で追加された機能
絵文字を表示させる機能は、4.2で追加された機能です。
MySQLのバージョンと文字コード
絵文字のコードをそのままデータベース(MySQL)に入れるためには、バージョンが5.5.3以上で、その文字コードがutf8mb4である必要があります。
絵文字は重い
絵文字の処理は、WordPressにとって、重たい処理のようです。 使っていなくても、head内にコードが挿入されます。 functions.phpにコードを書くと、filterを無効化できます。
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');
絵文字はスマイリーとは違う
絵文字と、スマイリー(エモーティコン、フェイスマーク、顔文字)は、技術的には違うものです。
絵文字を入力する
絵文字の入力方法は、デバイスによって異なります。 絵文字サイトからコピペしてくる方が、早そうです。 🦸♀️ 🦸♂️ 🦹♀️ 🦹♂️ 👮♀️ 👮♂️ 👷♀️ 👷♂️ 💂♀️
スマイリーを入力する
スマイリーは、記号の組み合わせを入力すると、機能を有効化していれば、変換されます。 🙂 😀 🙁 😮 😯 😕 😎 😡 😛 😐 😉 記号の間にスペースを入れないと、表示されない場合があります。 絵文字に比べると、少ないです。
スマイリーの使い方 – WordPress Codex 日本語版
絵文字が表示されない問題
今回、起きた問題はあるページだけ絵文字(顔文字を含む)が出ないというものでした。 つまり、絵文字でなく、スマイリーでした。 表示されないページは、カスタマイズされたページで、the_content()が使われていませんでした。 原因は、the_content()のfilterがないことでした。
the_contentのfilter
convert_smiliesで、スマイリーに変換しています。 表示する前に、この関数を実行すれば、表示されました。
<?php $the_content = convert_smilies($the_content); echo $post_content; ?>
the_contentで使用されているfilter
the_contentで使用されているfilterは、これだけあります。
wp-includes/default-filters.php
add_filter( 'the_content', 'capital_P_dangit', 11 ); add_filter( 'the_content', 'wptexturize' ); add_filter( 'the_content', 'convert_smilies', 20 ); add_filter( 'the_content', 'wpautop' ); add_filter( 'the_content', 'shortcode_unautop' ); add_filter( 'the_content', 'prepend_attachment' ); add_filter( 'the_content', 'wp_make_content_images_responsive' ); add_filter( 'the_content', 'do_shortcode', 11 );
まとめ
検索しても、意外と出てこなかったので、メモしておきます。 あと、一応、絵文字と顔文字が、別なものなので、その部分も戒めとして、心に留めておきます。 それでは、また!
売り上げランキング: 4,946
コメント