絵文字画像が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

お勧め

flush_rewrite_rules(2015年9月24日 更新)

void flush_rewrite_rules( [ bool $hard = true ] )
リライトルールを更新する。

shortcode_atts(2018年5月27日 更新)

array shortcode_atts( array $pairs, array $atts )
ショートコードの無効な属性値を除外する。属性が省略されている場合は、デフォルト値を設定する。

the_weekday(2012年1月16日 更新)

void the_weekday( )
投稿日の曜日を表示する。

wp_loginout(2018年5月27日 更新)

void wp_loginout( [ string $redirect = '' ] )
閲覧者がログインしているかどうかを調べ、ログインしていなければログインページのリンクを、ログイン済みならばログアウトページのリンクを表示する。

has_term(2012年1月17日 更新)

bool has_term( [ mixed $term = '' [ , string $taxonomy = '' [ , mixed $post = null ] ] ] )
投稿記事にタクソノミーが付属しているか調べる。