WordPressで用意されている関数、is_mobileやwp_is_mobileを利用すると、アクセスしてきたデバイスの種類をPHPプログラム側で取得する事ができます。
下記に設定方法と使い方を解説します。
1.is_mobile関数
この関数はアクセスしてきたデバイスがスマホの場合はtrueを返す関数です。
但し、この関数を使う場合はfunctions.phpに下記を登録する必要があります。
<?php function is_mobile() { $useragents = array( 'iPhone', // iPhone 'iPod', // iPod touch 'Android.*Mobile', // 1.5+ Android *** Only mobile 'Windows.*Phone', // *** Windows Phone 'dream', // Pre 1.5 Android 'CUPCAKE', // 1.5+ Android 'blackberry9500', // Storm 'blackberry9530', // Storm 'blackberry9520', // Storm v2 'blackberry9550', // Storm v2 'blackberry9800', // Torch 'webOS', // Palm Pre Experimental 'incognito', // Other iPhone browser 'webmate' // Other iPhone browser ); $pattern = '/'.implode('|', $useragents).'/i'; return preg_match($pattern, $_SERVER['HTTP_USER_AGENT']); } ?>
※1.上記関数は登録したデバイスからのアクセスにtrueを返します。
※2.関数名はis_mobile()でなく他の関数名でも構いませんが一般的にはこの名前が使われます。
<使い方>
<?php if(is_mobile()){echo 'このデバイスはスマホです'} else{echo 'このデバイスはスマホではありません'} ?>
2.wp_is_mobile関数
この関数はWordPressのVer3.4から導入された関数で、アクセスしてきたデバイスがスマホ、iPad、タブレットの場合、trueを返します。
<使い方>
<?php if(wp_is_mobile()){echo 'このデバイスはスマホまたはタブレットです'} else{echo 'このデバイスはPCです'} ?>
3.デバイスの判定方法と問題点
各デバイスの判断は下記で行います。
判定値 | スマホの判定 | タブレットの判定 | PCの判定 | |
is_mobile関数 | true | 〇 | ||
false | 〇 | |||
wp_is_mobile関数 | true | 〇 | ||
false | 〇 |
上記関数の問題点は下記になります。
①新しいタイプのデバイスが出てきた場合、更新が必要
この関数はデバイス種類を判断している為新しいデバイス名が登場した場合は、関数の更新が必要になります。
但し、wp_is_mobileはWordPress側で更新してくれます。
②プログラムのデバッグ環境で利用できない。
プログラム開発は通常PCで行い、タブレット画面やスマホ画面の確認はWindowsサイズの縮小で行います。
しかしこれらの関数はデバイス種類を返しているだけなのでこの機能が使えません。
4.関連記事
画面サイズを取得する方法は下記URLを参照してください。
この関数と画面サイズの判断関数の両方を使う判断は下記URLを参照してください。