忍者ブログ
14 December

投稿エディタ内で、スマホとPCの条件分岐のショートコード

http://ankare2dx.org/wp-post-pasokon-or-sumaho/

functions.php
function pccontents( $atts, $content = null ) {
if(is_mobile()) { 
        return '';  
 } else {
        return '' . $content . '';
 }
}
function spcontents( $atts, $content = null ) {
if(is_mobile()) { 
        return '' . $content . '';  
 } else {
        return '';
 }
}
add_shortcode('pc-mieru', 'pccontents');
add_shortcode('sp-mieru', 'spcontents');

投稿エディタ内
[pc-mieru]パソコンからのみ表示される[/pc-mieru]
[sp-mieru]スマホからのみ表示される[/sp-mieru]


http://www.nxworld.net/wordpress/wp-is-mobile.html
functions.php の is_mobile 設定
function is_mobile(){
    $useragents = array(
        'iPhone',          // iPhone
        'iPod',            // iPod touch
        'Android',         // 1.5+ Android
        '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
    );
    $pattern = '/'.implode('|', $useragents).'/i';
    return preg_match($pattern, $_SERVER['HTTP_USER_AGENT']);
}




テンプレート.phpに wp_is_mobile として書くのはあるけど、エディタでそれは使えない
直接phpが書き込めるようになるプラグインはセキュリティの心配をチラホラ目にするので避けたい
それならショートコード化する

その前提
functions.php の is_mobile 設定 が書き込まれていること
wp_mobileが出てくる前に使われていたis_mobileはこの設定が必要っぽい
しかしwp_is_mobileは含む ipad なため、UA判別のときにipadはPCと同じようにしたい。
ipadも今じゃ画面サイズ大きいからPCで十分だよね。
PR