WordPress

WordPressの投稿記事内で、スマホとPCを分岐する方法【PHP】

投稿日:2014年11月10日 更新日:


WordPressを使ってて、PCとスマホの表示を分けたい!と思ったことはありませんか?

けっこうカンタンにできちゃうんです!今日はその方法を紹介します。

スマホ分岐

 ※必ずバックアップを取ってください。手順を間違えると最悪WordPressが起動しなくなる可能性もあります。最後まで読んでも理解できない場合は、やめたほうが良いと思います。

 

と、脅しましたが、手順としてはそんなに難しくないです。

やることが理解できれば、1分ほどでできると思います。

 

手順1: is_mobile関数を組み込む

WordaPressの左側のサイドバーから、外観→テーマ編集と進んでください。

その中に多分、『テーマのための関数(functions.php)』というのがあるので、それをクリック。

コードがバーっと表示されていると思います。

(ここらへんでウワーッ、って思う人はやめたほうが良いかもしれませんw)

 

ここにis_mobile関数を組み込みますが、元々追加されている場合もあるので、

その場合はこの手順1はスキップして頂いて構いません。

is_mobile関数

function is_mobile(){
    $useragents = array(
        'iPhone', // iPhone
        'iPod', // iPod touch
        'Android.*Mobile', // 1.5+ Android *** Only mobile
        'Windows.*Phone', // *** Windows Phone
        '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']);
}

こちらを先ほどのfunctions.phpにコピーします。

(※ここで挿入する位置を間違えると、画面が真っ白になりますよ~)

 

ポイント

もう一度、is_mobile関数が入っていないか確認(2個入れちゃダメ)

<?php ほげほげ ?> ←このように"ほげほげ"の位置に入れなきゃいけない

 

例えば、だいたいのコードは

<?php
function ほにゃらら~~~

から始まっていると思いますので

 

<?php
ほげほげ←ここ!

function ほにゃらら~~~

 

に上のソースコードをコピペしてあげたら良いです。

 

これを追記したら、一度ブログが死んでいないか確認しましょう。

もし、死んだ場合は下の方に応急処置を書いておきますので参考にしてください。

 

手順2: ショートコードを追加する

ショートコードとは同じことをしたいときに、"WordPress内で共通の命令を支持するタグ"とでも覚えておいてください。(今回は"frompc"というショートコードと"fromsp"というショートコードを追加します)

これを使えるように、更に先ほどのコードに追加します。

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('frompc', 'pccontents');
add_shortcode('fromsp', 'spcontents');

これを同じくfunctions.phpに挿入します。

<?php
ほげほげ←さっきの!
ふがふが←ここ!
function ほにゃらら~~~

に加えてあげたら良いと思います。

(もちろん、知識がある方は好きなところに加えてください)

ここで、もう一度ブログが死んでいないか確認しましょう。

 

はい、これで準備完了です!!

 

手順3: 実際に記事内でショートコードを使ってみる

あとは実際の投稿記事や固定ページでショートコードを使うだけです。

PCで表示したい部分を
[[frompc] [/frompc]]で囲います。

 

スマホで表示したい部分を
[[fromsp] [/fromsp]]で囲います。

 

この時、投稿画面の右上に、【ビジュアル】【テキスト】って書いた部分があるので

これを追記するときは、【テキスト】に切り替えて挿入してください。

 

サンプルコード

例として

[[frompc]PCからのアクセスですね。大きい画像をどうぞ[/frompc]]

[[fromsp]スマホからのアクセスですね。小さい画像をどうぞ[/fromsp]]

と書くと

 

デモ(実行結果)

[frompc]あなたはPCからのアクセスですね。大きい画像をどうぞ[/frompc]

[fromsp]あなたはスマホからのアクセスですね。小さい画像をどうぞ[/fromsp]

のように振り分けられます!お疲れ様でした!

 

私個人は、ビューが多い記事に対して、スマホの画像を最適化したくて、導入しています。

(毎回設定するのは面倒なので...)

 

※おまけ: 真っ白になってしまった時は...

真っ白になってしまった場合は、基本的にはWordPress側からは復旧できません

・サーバー側のファイルマネージャー等で(契約しているサーバーによってやり方が違います)から、直接ファイルを書き換える(手順1,2で追加したコードを消す)

・FTP等を使って、バックアップファイルで(functions.phpを)上書きする

 

もし、それでも解決しない場合は、誤って他のところを削除・改変をした可能性が高いので、こちらを参考にしてください。

WordPressで画面が真っ白になったら、最初にやるべきこと

 

何かの参考になりましたら嬉しいです♪


-WordPress
-,

Copyright© 世界一ブログ.com , 2017 AllRights Reserved.