WordPressのブラウザ判定に使える便利なGlobal変数についての覚書

一部ですがユーザーが使用しているブラウザ・端末について、WordPress本体側で判定が行われているのをご存知でしょうか? HTML5/CSS3辺りのブラウザ対応の差を埋めるためくらいしかちょっと想像がつかないのですが、 […]

広告ここから
広告ここまで

目次

    一部ですがユーザーが使用しているブラウザ・端末について、WordPress本体側で判定が行われているのをご存知でしょうか?

    HTML5/CSS3辺りのブラウザ対応の差を埋めるためくらいしかちょっと想像がつかないのですが、いざという時に便利そうなのでまとめてみました。

    グローバル変数で使用できるブラウザ判定プロパティ

    $is_iphone (boolean) iPhone Safari
    $is_chrome (boolean) Google Chrome
    $is_safari (boolean) Safari
    $is_NS4 (boolean) Netscape 4
    $is_opera (boolean) Opera
    $is_macIE (boolean) Mac Internet Explorer
    $is_winIE (boolean) Windows Internet Explorer
    $is_gecko (boolean) FireFox
    $is_lynx (boolean) Lynx
    $is_IE (boolean) Internet Explorer

    Lynxに対応しつつ、Androidに対応していない辺りちょっと謎だったりしますが・・・

    ちなみにiPadは$is_iphoneで対応できるみたいです。

    is_IEについて補足

    IE系の変数が「is_macIE」「is_winIE」「is_IE」と3つありますが、ソースを見る限り「 is_macIE + is_winIE = is_IE 」みたいです。

    [php]
    $is_IE = ( $is_macIE || $is_winIE );
    [/php]
    WordPress/vars.php

    大体「is_IE」でいけるので、よっぽどの事がなければ「is_macIE」「is_winIE」を使う機会は無いのではないかと思います。

    使い方

    使い方は非常に簡単で、「global 変数名」で呼び出した後に通常の変数としてそのまま扱うことができます。

    Chromeだけ処理を変える場合のif分岐

    [php]
    global $is_chrome;
    if($is_chrome){
    //ここにChromeオンリーの処理を書く
    }
    [/php]

    IE絶対殺すマン

    [php]
    global $is_IE;
    if(!$is_IE){
    //IEの時だけ処理しない
    }
    [/php]

    おまけ:それぞれの判定内容ピックアップ

    せっかくなのでそれぞれの変数をtrueにしている判定部分を引っこ抜いてみました。

    $is_chrome
    stripos($_SERVER['HTTP_USER_AGENT'], 'chrome') !== false && stripos( $_SERVER['HTTP_USER_AGENT'], 'chromeframe' ) === false 
    $is_safari
    stripos($_SERVER['HTTP_USER_AGENT'], 'safari') !== false
    $is_NS4
    strpos($_SERVER['HTTP_USER_AGENT'], 'Nav') !== false && strpos($_SERVER['HTTP_USER_AGENT'], 'Mozilla/4.') !== false 
    $is_opera
    strpos($_SERVER['HTTP_USER_AGENT'], 'Opera') !== false
    $is_macIE
    strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== false && strpos($_SERVER['HTTP_USER_AGENT'], 'Mac') !== false 
    $is_winIE
    (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== false || strpos($_SERVER['HTTP_USER_AGENT'], 'Trident') !== false ) && strpos($_SERVER['HTTP_USER_AGENT'], 'Win') !== false
    $is_gecko
    strpos($_SERVER['HTTP_USER_AGENT'], 'Gecko') !== false 
    $is_lynx
    strpos($_SERVER['HTTP_USER_AGENT'], 'Lynx') !== false 
    $is_iphone
    $is_safari && stripos($_SERVER['HTTP_USER_AGENT'], 'mobile') !== false
    $is_IE
    $is_macIE || $is_winIE 
    広告ここから
    広告ここまで
    グローバル変数 判定処理