WordPress では SVG はサポートされていないのでプラグインを使うという方法もあるけど、今回は、プラグインを使わないで SVG を WordPress で使うための手順を、以下、覚え書き。
SVGとは
SVG とは Scalable Vector Graphics(スケーラブル・ベクター・グラフィックス)の略で、Web サイトにロゴやアイコンを表示するために使用される XML ベースのベクトル形式の画像フォーマットの一種。
JPEG や PNG のようなラスタ形式の画像(ビットマップデータ)ではないので、一般的にファイルサイズが小さく、さらに拡大・縮小しても画質が損なわれないという特徴がある。
SVG は、一般的に PNG や JPG よりもファイルサイズが小さいので、SVG を使用した場合ページサイズ全体が縮小され、サイトのスピードを上げることができ、Google に検索インデックスもされる。
※インライン SVG、または単なるコードで構成された SVG は、通常、インデックスされないので注意。
SVGがサポートされているブラウザ
SVG は、2001 年 9 月に W3C に勧告された技術にも関わらず、以前はサポートしているブラウザが少なかった。
しかし、RETINA ディスプレイのような高解像度画面が普及してきたため、近年はサポートが広範囲になり、すべてのモダンブラウザで SVG はサポートされている。
サポートブラウザ一覧
- Internet Explorer 9 , 10 , 11 + および Edge
- Firefox 3 +
- Chrome 4 +
- Safari 3.2 以降
- Opera 10 +
- iOS Safari 3.2 以降
- pera Mini(すべて)
- Androidブラウザ 4.4 以降
※ IE8 はサポートしていないので注意。
WordPressでSVGがサポートされていない理由
すべてのモダンブラウザにサポートされているのにもかかわらず、WordPress では SVG はサポートされていない。
なぜなら、SVG は、ラスタ形式の画像( png 、jpg 、gif など)と違い、ベクトル形式の XML ファイルなので、さまざまな脆弱性が存在し、XML 外部エンティティ攻撃や XSS 攻撃などを受ける可能性や、外部攻撃以外にも、SVG は JavaScript を埋め込むことができ、SVG 表示時に悪質な JavaScript の実行に使用することもできるので、WordPress の主要開発者たちの間で議論は続いているが、現在も、セキュリティの観点から、WordPress は、SVG をサポートしていない。
WordPressでSVGを使用するために設定編集
いずれデフォルトになると思うけど今のところデフォルトで SVG を使うことができないので、WordPress の設定を編集して SVG を使えるようにする。
WordPress のメディア・アップローダーは、アップロードするファイル形式が制限されているので、基本的に SVG 画像のアップロードは許可されていない。
なので、ファイルをアップロードしようとすると下記のようなエラーメッセージが表示されてアップロードできない。
だけど、WordPress のメディアライブラリへアップロードすることができるファイル形式の設定は編集できるので、functions.php にコードを追記して、SVG フォーマットをアップロードできるファイル型式として設定する。
functions.phpにコードを追記
子テーマの functions.php ファイルに下記のコードを追記する。
add_filter('upload_mimes', 'set_mime_types'); function set_mime_types($mimes) { $mimes['svg'] = 'image/svg+xml'; return $mimes; }
追記することによって、SVG の拡張子( image / svg + xml )を、アップロード許可済みのファイル形式の配列に追加することができ、SVG をアップロードできるようになる。
.htaccessにコードを追記
さらに、サーバー環境によってはブラウザー側で「. svg 」「. svgz 」を画像として認識してくれず表示されない場合があるので、.htaccess に下記のコードを追記してサーバー側の設定を変更する。
AddType image/svg+xml .svg .svgz AddEncoding gzip .svgz
※ 2 行目の AddEncoding gzip .svgz の部分は拡張子が「.svgz 」になる圧縮された SVG に対応するためのものなので記述を忘れないように注意。
これで、メディアライブラリに SVG を直接ドラッグ&ドロップでき、さらに SVG が標準ファイルとして表示されるようになる。
SVGデータの作り方
SVG データは Illustrator や Photoshop から書き出すことができる。
今回は、Illustrator で作成。
1 . まず、Illustrator で SVG にするデータを作成する。
2 . データが完成したらメニューバーの「ファイル」から「別名で保存」をクリック。
3 . ファイルの種類の「 SVG( SVG )」を選択して保存をクリック。
4 . SVG オプションの各項目を選択して「 OK 」をクリックして完了。
SVG データ書き出し時の設定項目
- SVG プロファイルは「 SVG 1 . 1 」を選択。
- オプションの画像の場所は「埋め込み」を選択して、「 Illustrator の編集機能を保持」のチェックは外す。
『 SVG 形式で書き出す時のオプション設定の詳しい方法( Illustrator CC )』は ⇒ こちら
WordPress が SVG をサポートすることはすぐにはなさそうなので、しばらくはこの方法で。