スマートフォン・タブレットからインターネットサーバーオペレーション 2016

APPW.jp 2016

WordPress Shortcode を SVG Fallbacks で試します

WordPress の記事投稿では、実行を目的とした PHP プログラムコードを含めるために、Shortcode API が用意されています。

この WordPress の short API を試してみるのとあわせて、SVG Fallbacks も試してみたいと思います。

少し古いバージョンのブラウザでは、SVG に対応しないものがあります。このようなブラウザでは、PNG や JPEG などの代替画像イメージを表示させる方法がとられることがあります。これが SVG Fallbacks の代表例のひとつです。

様々な方法が発見されたり、開発されていますが、インライン SVG を利用した方法のひとつに、次のような記述方法があります。



<svg width="320" height="320">
<image xlink:href="a.svg" 
src="a.png" width="320" height="320" />
</svg>

SVG 対応ブラウザでは、xlink:href の SVG ファイルの内容が表示されますが、対応していないブラウザでは、SVG の記述は無視され、image 要素は img タグと解釈されて src の PNG ファイルが表示されます。

だだし、この方法は、SVG に対応している IE9、10、11 で、xlink:href の SVG ファイルと src の PNG ファイルの両方が取り込まれることがわかっています。

この点をふまえて、PHP での IE バージョン判定をもとに、SVG Fallbacks コードを WordPress Shortcode から出力して試してみます。

テーマのための関数(functions.php)に書き加えます。



function get_svg_fallbacks( $atts ) {

  $uah = "";
  if ( isset( $_SERVER["HTTP_USER_AGENT"] ) ):
    $uah = $_SERVER["HTTP_USER_AGENT"];
  endif;

  if(preg_match("/MSIE [5678]/",$uah)):
    $outputhtml =
  '<img width="' . $atts['width']
  . '" height="' . $atts['height']
  . '" src="' . $atts['imgsrc']
  . '" />';
  elseif(preg_match("/Trident\/[567]/",$uah)):
    $outputhtml =
  '<svg width="' . $atts['width']
  . '" height="' . $atts['height']
  . '">'
  . '<image width="' . $atts['width']
  . '" height="' . $atts['height']
  . '" xlink:href="' . $atts['svgsrc']
  . '" />'
  . '</svg>';
  else:
    $outputhtml =
  '<svg width="' . $atts['width']
  . '" height="' . $atts['height']
  . '">'
  . '<image width="' . $atts['width']
  . '" height="' . $atts['height']
  . '" xlink:href="' . $atts['svgsrc']
  . '" src="' . $atts['imgsrc']
  . '" />'
  . '</svg>';
  endif;
  return $outputhtml;
}

add_shortcode('svg_fallbacks',
 'get_svg_fallbacks');

WordPress の投稿記事中に使用します。



[svg_fallbacks
 width="320"
 height="320"
 svgsrc="a.svg"
 imgsrc="a.png"]

表示例です。http://appw.jp/2014/?p=47

WordPress Shortcode で HTML コードを表示

python-wordpress-xmlrpc ライブラリで投稿

Python Pillow でサムネイルを作成
WordPress Shortcode で HTML コードを表示
WordPress Shortcode を SVG Fallbacks で試します
Tornado で Secure Websocket を試します

MYCODEは、唾液を採るだけで最大280項目の病気と体質の遺伝的傾向がわかる、遺伝子検査キットです。

わたしたちの遺伝子から健康のためのヒントを見つけよう【MYCODE】

新スマホがぞくぞく登場!ラインアップ充実。UQなら家族割で新規2台目以降1,480円/月~、乗り換える方が増えています。

auネットワークで月々980円(税抜)~!【UQ mobile】

最短4週間で未経験からプロを育てるオンライン完結のスクールです。自宅でもプログラミングやアプリ開発を学ぶことができます。受講生に1人ずつ現役のプロのパーソナルメンターがつきます。

未経験からプロのエンジニアを育てるオンラインブートキャンプ

新幹線/有料特急の往復チケットとホテル/旅館の宿泊がセットになったお得な旅行プランを掲載。家族・夫婦旅行/イベント/女子旅/一人旅/出張に便利!

オトクな「新幹線+ホテルセットプラン」を検索!

コストパフォーマンスの高いレンタルサーバーラインナップと、自由度の高いVPS(KVM)から選べます。

お名前.comの高性能VPS

現役エンジニアによるプログラミング家庭教師サービスです。オンライン上でマンツーマンでレッスンが受けられるので、いつでもどこからでも学習ができるのが最大の特徴です。

オンラインプログラミング研修のCodeCamp

最短即日発行の「ドメイン認証SSL」のほか、「EV SSL」や「企業認証SSL」などの信頼性の高いSSL証明書も業界最安水準にて提供しています!また、無料で使えるSSL証明書にも対応しています。

格安SSL証明書サービス、SSLボックス

高速なSSDも選択でき、複数台構成も可能。スモールスタートしたい方や手軽な開発環境がほしい方におすすめな、柔軟さが特長の仮想専用サーバーサービスです。

選べるプランとOS!さくらのVPS

家でも外でもインターネット!モバイルルーターは持ち歩き可能。工事不要!回線を引く時間もお金も不要。即時開通!端末が届けばすぐに利用可能。

超速モバイルネットWiMAX 2+!!ニッポンを、超速へ。