"SwapSkills" Information & Report

SwapSkills 2011(vol.7)「スマートフォン+jQuery Mobile in WordPress」レポート

WordPressのページをスマートフォン化させる勉強会を開催

2011年9月17日に、WordPressのページをスマートフォン化させる方法をテーマにSwapSkillsが開催されました。スマートフォンの普及に伴いブログサイトもスマートフォンに対応させるニーズが出てきた事や、デフォルトテーマのWordPressTheme(テーマ:Twenty Eleven)もレスポンシブウェブデザインでスマートフォンサイトにも対応できるようになっている事も受けて参加者の注目を浴び、すぐに満席になったイベントとなりました。

まずはKtaiStyleのプラグインを作成されている池田百合子氏から、WordPressでのスマートフォン対応及び、携帯サイトへの対応方法にどのようなものがあるのかをご紹介いただきました。

WordPressはパソコン用のCMSツールとして誕生していますので、当然現状のパソコンページとスマートフォン、フューチャーフォンページに分ける必要がでてきます。

振り分け対応方法として、池田氏ご自身でも作成されているようなプラグインをWordPressにインストールする事で実現する方法と、Twenty Elevenベースでのカスタマイズを解説していただきました。

WordPressのプラグインで簡単スマートフォン化

プラグインの利用は簡単で手間がかからないけれど、デザインのカスタマイズは大変で、一見してどのプラグインを利用していているのかがわかってしまう、などのメリット、デメリットを解説し、よく利用されているプラグインの紹介をしていただきました。

WordPressは世界で最もよく利用されているCMSツールという事もありまして、多くのテーマやプラグインが存在します。その中でも、フューチャーフォン、スマートフォン向けに便利なプラグインを紹介していただきましたので以下に紹介させていただきます。

フューチャーフォンでは、Ktai Style、FortySix Mobile、WordPress Mobile Editionで対応する事が多く、スマートフォン対応としては、WPtouch、WordPress PDA&iPhoneがメインになります。

ただ、スマートフォン用のWordPress PDA&iPhoneは海外向けのスマートフォンが主流で、実際にはWPtouchがよく利用されています。予算がなく対応だけさせたい案件の場合などはWPtouchが利用可能です。

画像

Twenty Elevenはレスポンシブウェブデザインでできている

デフォルトテーマのTwenty Elevenは、WordPress 3.2に附属していて、子テーマを利用してデザインカスタマイズができます。

Media Query(Media Queries)を利用してデバイスのスクリーンサイズを変えたり、状態によってはCSSを切り替えるというレスポンシブウェブデザインの仕組みを利用しています。

@media(max-width:480px)=スクリーンサイズが480px;の場合、@media(orientation:portrait)=スマートフォンの縦利用の場合、@media(min-resolution:200dpi)=解像度200dpi以上のデバイスという意味で、この後に記述するCSSが適応されます。

実装方法として、親テーマと同じ階層に子テーマのフォルダを作成して、その中にCSSファイルを作成しています。親テーマのテンプレート・関数を引き継ぎ、変更点のみオーバーライドする仕組みになっています。子テーマのCSSファイルには以下の記述をして認識させます。

/*
Theme Name: Twenty Eleven Mobile  << 管理画面に出てくる子テーマの名前
Template: twentyeleven << 親テーマの名前
Author: IKEDA Yuriko  << 作者の名前
Author URI: http://en.yuriko.net/  << 作者のURL
Description: Mobile version of Twenty Eleven
Version: 1.0
License: GNU General Public License
License URI: license.txt
*/

スマートフォンかどうかはユーザーエージェントによって判別させます。PHPを使ってWordPressプラグインとして実装すると以下のようになります。これはiPhoneやAndroidかを判定する事ができます。

<?php
/*
Plugin Name: Smartphone Switcher
Version: 0.7.0
Author: IKEDA Yuriko
*/
if ( $is_iphone ) {
  add_action('stylesheet','change_stylesheet', 20);
}
function change_stylesheet($stylesheet) { ! return ‘smartphone’;
}

これらのPHPファイルを認識させるために、管理画面でiPhoneやAdroidのテーマを有効化させます。カスタムで作成の場合はオリジナルフォルダを作り、そのフォルダをアクティブにさせます。

Ktai Styleでもスマートフォン向けサイトの作成も可能ですが、デフォルトで画像を小さくするなどの機能を追加していたり、JSが利用できない設定にしている部分があるので最適ではない、と作成者ゆえに細かな解説もしていただけました。

その他、スマートフォンサイト制作のポイントなどをいくつか紹介していただき、WordPressでのスマートフォンサイトの大枠を理解する事ができました。

jQueryMobileをWordPressで認識させる方法

次に、タッチイベントやブラウザ間での表示の差異を吸収してくれる事でも注目を浴びている、jQueryMobileをWordPressに組み込む方法を星野邦敏氏から紹介していただきました。

先に述べたブラウザ間の表示の差異を吸収してくれるという特徴とともに、同じURLでどのデバイスからでもアクセスできる事がメリットと解説されました。

jQueryMobileを組み込む方法も実は、池田氏が解説したように2つのアプローチがあり、Twenty Elevenの様なレスポンシブウェブデザインでの実現と、振り分けられたスマートフォン向けのサイトに施すやり方があります。

画像

jQueryMobileでレスポンシブウェブデザインが可能!

レスポンシブウェブデザインでの実現は、SwapSkillsDoubbbe(1)⁠One Web」で吉川徹氏が解説している(現在、電子書籍で販売)ため、今回はKtai Styleでの振り分けされたサイトに実現する方法をご紹介いただきました。

池田氏が解説した内容と同様にKtai Styleを有効化させ、振り分けたフォルダにjQueryMobileのjsファイルを設置し、metaタグの中に以下のコードを記載して認識させます。

<link rel="stylesheet" href="<?php ks_theme_url(); ?>js/jquery.mobile-1.0b3.min.css" />
<script src="<?php ks_theme_url(); ?>js/jquery-1.6.4.min.js"></script>
<script src="<?php ks_theme_url(); ?>js/jquery.mobile-1.0b3.min.js"></script>

通常のテーマにも以下のような記述で認識させる事ができます。

<link rel="stylesheet" href="<?php bloginfo('stylesheet_directory'); ?>/js/jquery.mobile- 1.0b3.min.css" />
<script src="<?php bloginfo('stylesheet_directory'); ?>/js/jquery-1.6.4.min.js"></script> <script src="<?php bloginfo('stylesheet_directory'); ?>/js/jquery.mobile-
1.0b3.min.js"></script>

WordPressのコアファイルには、jQueryが同梱されているので、以下のWordPressのテンプレートタグで読み込むこともできます。

<?php wp_enqueue_script('jquery'); ?>

以上のような読み込みの設定で準備が整いました。

動的コンテンツもjQueryMobileで実現できるのが醍醐味

WordPressのようなコンテンツシステムは管理画面上からコンテンツを追加できます。jQueryMobileを利用しても同様にコンテンツ追加で自動生成されなくてはいけませんので以下のような記述で実現します。

<?php
$my_query = new WP_Query(array(
       'cat' => 1,
       'posts_per_page' => -1,
       'orderby' => 'comment_count',
       'order' => 'DESC'
));
?>
<ul data-role="listview" data-inset="true">
<li data-role="list-divider"><?php echo get_catname('1'); ?></li>
<?php while($my_query->have_posts()) : $my_query->the_post(); ?>
<li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
<?php endwhile; ?>
</ul>
  • カテゴリーID「1」のカテゴリー名を取得
  • カテゴリーID「1」の記事をループ処理(繰り返し処理)
  • 記事のタイトルを取得記事のリンクURLを取得

他にも表示非表示などjQueryMobileでよく利用され、WordPressで便利そうな内容をご紹介いただき幕を閉じました。参加者からは、多くの質問をいただき、スマートフォンに対応化することが急務になっている事が伺えた勉強会になりました。

おすすめ記事

記事・ニュース一覧