ワードプレスでテーマを自作しているような時に、PC版とスマホ版でテンプレートの表示を切り替えるのに、wp_is_mobile()という関数がよく使われます。
この関数では、ipadでページを見たときに、スマホと判定してスマホのテンプレートが表示されますが、ipadで見たときは、PCのページを見せたいというシーンも多いです。
その設定方法を以下にご紹介します。
wp_is_mobile関数をカスタマイズ
wp_is_mobile関数をカスタマイズした以下のコードを、テーマフォルダ/functions.phpに追記します。
関数名は、wp_is_mobileだと、正しく動きません。
名前はなんでもよいですが、ここでは、my_wp_is_mobileという関数名にします。
■テーマフォルダ/functions.php
function my_wp_is_mobile() {
static $is_mobile;
if ( isset($is_mobile) )
return $is_mobile;
if ( empty($_SERVER['HTTP_USER_AGENT']) ) {
$is_mobile = false;
} elseif (
strpos($_SERVER['HTTP_USER_AGENT'], 'Android') !== false
|| strpos($_SERVER['HTTP_USER_AGENT'], 'Silk/') !== false
|| strpos($_SERVER['HTTP_USER_AGENT'], 'Kindle') !== false
|| strpos($_SERVER['HTTP_USER_AGENT'], 'BlackBerry') !== false
|| strpos($_SERVER['HTTP_USER_AGENT'], 'Opera Mini') !== false ) {
$is_mobile = true;
} elseif (strpos($_SERVER['HTTP_USER_AGENT'], 'Mobile') !== false && strpos($_SERVER['HTTP_USER_AGENT'], 'iPad') == false) {
$is_mobile = true;
} elseif (strpos($_SERVER['HTTP_USER_AGENT'], 'iPad') !== false) {
$is_mobile = false;
} else {
$is_mobile = false;
}
return $is_mobile;
}
テンプレートファイルで関数を呼び出す
テンプレートファイルに以下のようにif文を明記し、ipadはPCのテンプレート、スマホはスマホ用テンプレートが呼び出されるようになります。
if(my_wp_is_mobile()):
//ここにスマホで表示される内容
else:
//ここにpc/ipadで表示される内容
endif;
参考:functions – Excluding iPad from wp_is_mobile – WordPress Development Stack Exchange