WP Mobile Detect 2.0 プラグイン の不具合?バグ? (mobile-detect.phpのバージョン2.8.22の影響)

現象

WP Mobile Detect 2.0」 プラグインを使って「BlackBerry PlayBook」のタブレット端末の判断を「wpmd_is_tablet()」で行っているが、真にならない。 他のタブレットでは正常に判断できている。 確認はGoogle Chrome デベロッパーのエミュレート表示を使った。

結果

「WP Mobile Detect 2.0」 プラグインのバグ、又は内容の更新が遅れていると予測される。 自分で修正したいが、PHPは初心者レベルなので修正箇所が特定できない。

「WP Mobile Detect 2.0」 プラグインの自己責任アップデート

WP Mobile Detect 2.0」 プラグインには以下の3つのファイルが入っている。

  1. readme.txt
  2. mobile-detect.php  2.8.13 これは古いみたい。
  3. wp-mobile-detect.php  2.0 Plugin URI: http://jes.se.com/wp-mobile-detect/

2つ目の mobile-detect.php の最新バージョン(2017/03/30時点) 2.8.25 がココからダウンロードできる。ダウンロードした Mobile-Detect-master.zip に入っている (Mobile_Detect.php) を WinMarge ツールでファイル比較した結果、かなりの判定テーブルが追加されている事が判った。 Mobile_Detect.php を
mobile-detect.php の
大文字から小文字とアンダーバーをハイフンに変更して、FTPを使ってプラグインの古いファイルと入れ替える。 が、「BlackBerry PlayBook」のタブレット端末の問題だけは解決できなかった。orz

WP Mobile Detect プラグインの機能

PHP の関数と同様に WordPress 動作環境先(サーバー側では無く、クライアント側)に関する情報を提供する為の関数を提供する。よって、当プラグインをインストールしただけでは全く何の影響も機能も働かない。 クライアント端末がデスクトップか、スマフォか、iPhoneか、使っているブラウザは何か、を判断し、それによって動作を変えたい時に使える。「Widget Logic」プラグインの「条件分岐タグ」にも使える。上級者向けのプラグインと言ってもいい。以下の関数の一覧を見れば、何が出来るかが予想できると思う。

WP Mobile Detect で使用できる関数一覧

PHPから使用できるプラグインの関数は wpmd_is_*** の型。

  関数   機能
wpmd_is_notphone() デスクトップPCやタブレット時に true
wpmd_is_nottab() デスクトップPCやスマートホン時に true
wpmd_is_notdevice() デスクトップ時のみに true
wpmd_is_phone() スマートホン時のみに true
wpmd_is_tablet() タブレット時のみに true
wpmd_is_device() スマートホンやタブレット時に true
wpmd_is_ios() iOS デバイス時に true
wpmd_is_iphone() iPhone 時に true
wpmd_is_ipad() iPad 時に true
wpmd_is_android() Android 時に true
wpmd_is_windows_mobile() Windows Mobile 時に true
wpmd_is_blackberry() ブラックベリー時に true
wpmd_is_chrome_browser() モバイル Chrome ブラウザ時に true
wpmd_is_safari_browser() モバイル Safari ブラウザ時に true
wpmd_is_opera_browser() モバイル Opera ブラウザ時に true
wpmd_is_ie_browser() モバイル Internet Explorer ブラウザ時に true
wpmd_is_firefox_browser() モバイル Firefox ブラウザ時に true

 

BlackBerry PlayBook タブレットのユーザーエージェント 一覧

下記はココから引用した。OS 2.1.0は別環境でテストしたが、同じ値だったので下記内容は信頼できると予測している。

  1. OS 1.0 - According to RIM it's Mozilla/5.0 (PlayBook; U; RIM Tablet OS 1.0.0; en-US) AppleWebKit/534.8+ (KHTML, like Gecko) Version/0.0.1 Safari/534.8+
  2. OS 2.0.0 Mozilla/5.0 (PlayBook; U; RIM Tablet OS 2.0.0; en-US) AppleWebKit/535.1+ (KHTML, like Gecko) Version/7.2.0.0 Safari/535.1+
  3. OS 2.0.1 Mozilla/5.0 (PlayBook; U; RIM Tablet OS 2.0.1; en-US) AppleWebKit/535.8+ (KHTML, like Gecko) Version/7.2.0.1 Safari/535.8+
  4. OS 2.1.0 Mozilla/5.0 (PlayBook; U; RIM Tablet OS 2.1.0; en-US) AppleWebKit/536.2+ (KHTML, like Gecko) Version/7.2.1.0 Safari/536.2+

 

使用したツール

  1. ユーザーエージェントを表示するサイト (User Agent String.Com)

 

備考

  • header.php などに「useragents=(<?php echo getenv('HTTP_USER_AGENT'); ?>)」を入れると、表示している時のユーザーエージェントを画面で確認できる。 記事本文にはPHPコードを書いても動作しないで、注意が必要。 (セキュリティ強化か?