親父の知恵袋〜オヤジHACK > 難問疑問なこと > ワードプレスの個別ページで「パソコン」と「スマホ」の条件分岐ができない!

ワードプレスの個別ページで「パソコン」と「スマホ」の条件分岐ができない!

 作成日:2017/12/13 | 更新日:2017/12/13

ワードプレスの記事内にあるリンクの飛び先を、PC&タブレットとスマホへ条件分岐してみたのですがなかなかうまくいきませんでした。

ワードプレスで条件分岐する場合は、functions.phpに「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’]);
}

 

そしてテンプレート側では、

<?php if (is_mobile()) : ?>
スマートフォン用コンテンツ
<?php else: ?>
PC・タブレット用コンテンツ
<?php endif; ?>

と表記すれば、デバイスに応じた表示になるというものです。

 

しかし、ワードプレスでいくら設定しても、条件分岐ができないんです。

何回やってみても、パソコン・タブレット用とスマホ用のコンテンツが両方とも表示されてしまいます。

「条件分岐できない」とググってみても、解決策は「キャッシュ系のプラグインを止めてみましょう。」という内容しか見つかりません。

キャッシュ系プラグインは使っていないワードプレスでも条件分岐ができないので、この方法では解決できません。

どうしたものかと、再度ググって深い階層までページを進めていくとやっと解決策が見つかりました。

 

答えは「投稿と固定ページは直接phpの記述ができないのでショートコードを使用します」だった

PC&タブレットとスマートフォンで表示を切り替える条件分岐

【投稿・固定ページへの記述方法】

投稿と固定ページは直接phpの記述ができないのでショートコードを使用します。

 

どうやら原因は投稿ページに直接phpを書き込んでしまっていたのが原因だったみたいです。

確かにワードプレスの個別コージ内に直接phpを書き込んでいました。

すると、パソコン用とスマホ用の2種類とも表示されてしまうんですよね。

ところが先ほどのサイトで紹介されていた方法で行うと、

条件分岐ができました!

 

そういえばシリウスや有料ワードプレスのテンプレでも条件分岐はショートコード使っていますよね。

きっと知っている人からすれば、当たり前のことなんでしょうけど全然知りませんでした。

ワードプレスやphpなどに詳しくなくて困ってしまっても、Google検索すれば答えを教えてくれる諸先輩に出会うことができます。

諸先輩に感謝をしつつも、このページも同じ悩みで困っている人のお役に立てれば幸いです。

*解決策を教えてくれているサイトを紹介しているだけですが・・・(汗)

 

 

Ads by Google


キーワード