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

絵文字画像がPNGからSVGへ

説明

WordPressでは絵文字に対応していないブラウザ環境で絵文字を表示する仕組みをバージョン4.2から提供。絵文字に対応しているブラウザとそん色がない表示を実現する。

HTMLエンティティをimgタグに変換

その仕組みは、絵文字に該当する文字部分は😀のような文字エンティティに変換され、絵文字に対応していないブラウザでは文字エンティティを該当する画像ファイルを指定したimg要素に変換するというも。バージョン4.5.3では次のようなimg要素に変換されている。

<img draggable="false" class="emoji" alt="?" src="https://s.w.org/images/core/emoji/72x72/1f600.png">

※「?」はオリジナルの絵文字。

これに対しバージョン4.6(RC2)では画像ファイルがPNGではなくSVGに変わっている。

<img draggable="false" class="emoji" alt="?" src="https://s.w.org/images/core/emoji/2/svg/1f600.svg">

絵文字画像のURLをカスタマイズする

絵文字表示に関連するhead要素(一部抜粋)は次のようになっており、絵文字画像のURLが指定されていることがわかる(バージョン4.5.3の場合)。

<script type="text/javascript">
	window._wpemojiSettings = {"baseUrl":"https:\/\/s.w.org\/images\/core\/emoji\/72x72\/","ext":".png","source":{"concatemoji":"http:\/\/sekkyakucontest.jp\/wp\/wp-includes\/js\/wp-emoji-release.min.js?ver=4.5.3"}};

これに対しバージョン4.6(RC2)では次に示すようにPNG用に加えSVG用のURLと拡張子の指定が追加されている。

<script type="text/javascript">
	window._wpemojiSettings = {"baseUrl":"https:\/\/s.w.org\/images\/core\/emoji\/2\/72x72\/","ext":".png","svgUrl":"https:\/\/s.w.org\/images\/core\/emoji\/2\/svg\/","svgExt":".svg","source":{"concatemoji":"http:\/\/localhost\/wp-includes\/js\/wp-emoji-release.min.js?ver=4.6-RC2"}};

これらのURLと拡張子はそれぞれフィルターにてカスタマイズできるようになっている。

$settings = array(
	'baseUrl' => apply_filters( 'emoji_url', 'https://s.w.org/images/core/emoji/2/72x72/' ),
	'ext' => apply_filters( 'emoji_ext', '.png' ),
	'svgUrl' => apply_filters( 'emoji_svg_url', 'https://s.w.org/images/core/emoji/2/svg/' ),
	'svgExt' => apply_filters( 'emoji_svg_ext', '.svg' ),
);

ブラウザがSVGをサポートしている場合は絵文字画像はSVGの設定が適用されると思われるので、PNG画像をカスタマイズしているサイトは適宜対応する必要があるだろう。

また絵文字表示に関連するhead要素部分を出力する関数名は、バージョン4.5.3では print_emoji_detection_script だったが、バージョン4.6(RC2)では _print_emoji_detection_script に変更され、アクセスはプライベートに変わっている。レアケースだと思うが、独自にprint_emoji_detection_script関数を呼び出している場合はバージョンアップによりエラーになるので注意してほしい。


最終更新 : 2018年05月27日 10:44

お勧め

the_guid(2018年5月27日 更新)

void the_guid( [ mixed $id = 0 ] )
GUIDを表示する。

plugin_dir_path(2018年5月27日 更新)

string plugin_dir_path( string $file )
プラグインのパス名を取得する。

convert_invalid_entities(2018年5月27日 更新)

string convert_invalid_entities( string $content )
コンテントに含まれる無効なHTMLエンティティを変換する。

get_comment_pages_count(2015年12月16日 更新)

int get_comment_pages_count( [ array $comments = null [ , int $per_page = null [ , bool $threaded = null ] ] ] )
コメントページ数を取得する。

get_search_form(2019年5月9日 更新)

string | void get_search_form( [ bool $echo = true array | bool $args = array() ] )
サイト内検索フォームのテンプレートファイルを読み込んで表示する。