wp_is_mobile()を直接使わない方がよいかも
この関数は、タブレットがモバイル扱いになります。
function is_mobile(){
return wp_is_mobile();
}
テンプレートの「functions.php」に上記のようにis_mobileという関数を追加して、wp_is_mobileの代わりに使えば後からの変更に耐えれるかと思います。
タブレットの扱いを現状はモバイル扱い(スマホ扱い)でOKでも、後々PC扱いにしたい場合は、この1か所をかえれば済みます。
独自のis_mobile()関数を作ろう
・Android タブレット =「Android」の文字列が含まれる
・Android スマホ = 「Android」と(AND)「Mobile」の2つの文字列が含まれる
・iOSタブレット = 「iPad」の文字列が含まれる
・iOSスマホ = 「iPhone」か「iPod」の文字列が含まれる
・Windowsパソコン(タブレット) = 「Windows」の文字列が含まれる
・Windowsスマホ = 「Windows」と「Phone」の文字列が含まれる
UAをみて判断するわけですが、上記の規則が存在します。それを利用して判別するis_mobile()を作成します。
参考:スマートフォンとPCをユーザーエージェントで振り分ける | Web Tips
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
"webmate" // Other iPhone browser
);
$pattern = "/".implode("|", $useragents)."/i";
return preg_match($pattern, $_SERVER["HTTP_USER_AGENT"]);
}
上記のコードは、(たぶん昔の)wptouchを参考にしたものらしいです。preg_matchを使用したコードですが、ifとstrposで似たようなコードはかけるのでそちらでもよいかと思います。
参考:
・wordpressのプラグイン wptouchのソースを見ていたらお勉強になりました | 温故知新 linux実践講座
・PHP で、ユーザーエージェント(iPhone・Android・タブレット・携帯・PC)によってページを振り分ける | モノリオ
標準のwp_is_mobileの処理を書き換えたい
追記:2018/08/22
add_filter( 'wp_is_mobile', function( $is_mobile ) { if (!empty($_SERVER['HTTP_USER_AGENT']
別関数でなくて、WP標準関数のwp_is_mobile()の処理を書き換える方法です。add_filterを利用した書き換え方法が用意されているため、テーマーのfunctions.phpでの記述で変更可能です。
wp_is_mobile()の処理を置き換えるので、これを使用しているテーマ、プラグインの処理がこれに置き換わります。