この記事は最後に更新してから1年以上経過しています。

Emojin:プラグイン作ってみました

説明

ちょっと前のTLでiOSの絵文字を含んだ投稿を保存すると、絵文字以降の文章がすべて消えた状態で保存されるといったツイートを見かけた。少し検索してみると、MySQLのデータベースの文字セットが「utf8」の場合、iOSの絵文字のような4バイトの文字を正常に保存できず、それ以降の文章も保存されないというものらしい。対処方法としてデータベースの文字セットを「utf8mb4」に変更するのが有効らしいのだが、他に回避策がないか考えてみた。

基本的なアプローチは、UTF-8の4バイト文字が保存できないのだから、それを何かに置き換えてあげればいいというもの。問題は何に置き換えるのが適切なのかということで、いろいろ試した結果、対象の文字を「数値文字参照」に置き換えるのがよいという結果に至った。そんなわけで作ったプラグインが、この「Emojin」となる。

インストールおよび使用方法

1. Emojinのアーカイブファイルを解凍し、フォルダごと /wp-content/plugins/ の中に入れてください。
最新のEmojinのアーカイブファイルは、「wordpress.org(43KB)(wordpress.orgは申請中)」からダウンロードしてください。
2. 管理ページのプラグインページで「Emojin」を有効にしてください。
管理者権限のアカウントでログインし、サイドナビの「プラグイン」をクリック。一覧の中から「Emojin」の「有効化」をクリックしてください。
3. iPadから絵文字を入力して、保存してみた。
絵文字がきっちり保存された「Emojin」を有効にする前は「絵文字」以降がなくなった状態で保存されていたが、「Emojin」を有効にした後は「絵文字」を含めてその後の文章もきちんと保存できるようになっている。

よくある質問

Q. mbstringは必要ですか。
A. 本プラグインではmbstringを使用しておらず、必要ではありません。

更新履歴

  • 2014.08.23 Emojin 0.1.0をリリースしました。

最終更新 : 2015年03月21日 15:31

お勧め

wp_default_editor(2011年6月21日 更新)

string wp_default_editor( )
デフォルトの投稿エディタタイプを取得する。

delete_user_meta(2019年6月7日 更新)

bool delete_user_meta( int $user_id, string $meta_key [ , mixed $meta_value = '' ] )
ユーザメタ情報(拡張情報)を削除する。

get_header(2018年5月27日 更新)

void get_header( [ string $name = null ] )
ヘッダパーツを記述したメインヘッダファイルheader.php(またはサブヘッダファイルheader-???.php)を読み込む。

add_action(2018年5月27日 更新)

bool add_action( string $tag, mixed $function_to_add [ , int $priority = 10 [ , int $accepted_args = 1 ] ] )
WordPressシステムの関数にアクション関数を追加する。

delete_option(2019年4月24日 更新)

bool delete_option( string $option )
サイトオプションを削除する。