add_filter( 'wp_is_mobile', function( $is_mobile ) {
if (!empty($_SERVER['HTTP_USER_AGENT']) ) {
$ua =mb_strtolower($_SERVER['HTTP_USER_AGENT']);
//iPad
if(strpos($ua, 'ipad') !== false){
$is_mobile = false;
}
//kindle
if(strpos($ua, 'kindle') !== false || strpos($ua, 'silk') !== false){
$is_mobile = false;
}
//Androidタブレット
if (strpos($ua, 'android') !== false && strpos($ua, 'mobile') === false) {
$is_mobile = false;
}
}
return $is_mobile;
});
add_filterを使用して、wp_is_mobile関数を書き換えることが可能です。
標準では、タブレットもモバイル扱いされてますが、上記のように書き換えると、タブレットはPC扱いになります。
上記は、テーマーのfunctions.phpに追記してください。
wp_is_mobile関数自体は、「wp-includes/vars.php」の中に書かれていて、「return apply_filters( 'wp_is_mobile', $is_mobile );」のように値を返してるので、add_filterをつかって、値を上書きすることが可能なのです。
独自関数を作ってもいいのですが、wp_is_mobile()をプラグインで使われているとか、テーマ内ですでにwp_is_mobile()を使われている場合は整合性が取れなくなる場合があるので、今回のような対応をしてみました。
参考
・CloudFront 配下での User-Agent の判定 | Amimoto Help Center・[WordPress] wp_is_mobile() を CloudFront に対応させる · GitHub
・Excluding iPad from wp_is_mobile function!
スポンサーリンク
コメントを残す