サイトをiPadで確認するのを忘れてました。iPhoneでは見ていたのですが、iPadはPCと同じだろうと思っていました。レスポンシブレイアウトなTwentyTwelveです。
iPadで見たら、半分予想通り、半分あれっという結果だったので調べました。wp_is_mobileとWP Super Cacheの組み合わせは良く確認した方が良いこともわかりました。
IPad
このように表示されます。PCと同じ配置と...あれアドセンスの大きさが違います。これはこれで良い感じです、偶然ですが。iPhoneの表示になっています。
レスポンシブレイアウト
良い感じです、左にメニュー配置されていますし、メイン領域が自動で調整されています。iPhoneで見るとメニューが下に回り込むのですが、画面サイズに合わせて元の場所に帰っています。
wp_is_mobile
アドセンスはiPhoneとPCで表示を切り替えています。画面サイズが違うからです。 wp_is_mobile 関数を使っています。
WordPress3.4から追加された関数です。
wp_is_mobile関数 – WordPress3.4から実装されたパソコン用サイトとスマートフォン用サイトを分ける条件分岐タグ | 株式会社コミュニティコム
この関数を使ってスマートフォンとPCを3行で分岐させています。簡単です。グレート!
[php]
<!–?php if (wp_is_mobile()) :?–>
モバイルのアドセンスコード
<!–?php else: ?–>
パソコンのアドセンスコード
<!–?php endif; ?–>
[/php]
例はアドセンスコードですが、もちろんなんでもokです。
iPad のユーザーエージェントから「モバイル」と判断しています。なので、iPadはPC向け表示にしたい!と考えても、この関数ではモバイル表示になるのです。iPad miniがどうなのかはまた調べないといけないですが、おそらく同じことが起こると予想しています。
wp_is_mobile関数に設定オプションはないので、この関数以外でモバイル表示を制御するのが解決方法になります。こちらのサイトさんで説明されてますので参考になりました。
[WP] wp_is_mobile と iPad と WP Super Cache の怖い関係 – @mekemoke
このエントリーの中で気になるのが、このお話。
wp_is_mobile では、モバイル。
WP Super Cache では、パソコン。
ただ違うのね、で終わりではありません。モバイル用の画面がキャッシュされ、パソコンでアクセスしても有効期限までモバイル用の画面が表示されてしまう。
おーすごい。WP Super Cacheを使っている場合は要注意ですね。僕はQuick Cacheを使っています。試した限りでは(たぶん)大丈夫でした。
まとめ
- パソコンとモバイルの表示をwp_is_mobile関数にてカンタンに切り替えできる。
- wp_is_mobile関数はiPadをモバイルと扱う
- WP Super CacheはiPadをパソコンと扱うので、両方を使うのは注意が必要(wp_is_mobile関数を使わない方向で)
これら3点がポイントになります。あっ表示違うなーで終わらずに、すこし調べたら多くのことが分かり、勉強になりました。