WordPressの投稿や固定ページ内で携帯・スマホ・パソコン単位で違うものを見せる方法を調べたのでメモっておく。
最初に考えたのが
「端末別のテーマがあるんだから現在WordPressで使用されているテーマがわかればいいのでは??」
だった。
WordPressには
1 | bloginfo('template_directory'); |
という便利な人がいる
読んで字のごとく
「テンプレートのディレクトリを良い感じに教えてちょんまげ」
という人だ。
しかしこの人。
なぜか正規表現が通らなかった。
「もし今のテーマがスマホ用ならスマホ用文字を表示してね。
もし今のテーマが携帯用なら携帯用文字を表示してね。
もし今のテーマがパソコン用ならパソコン用文字を表示してね。」
としたいのにechoするとテーマのディレクトリが表示されるが正規表現ではこの変数はnullですと返された。
(公式サイトでもデザインをテーマって呼んでいるのにパラメータはテンプレートディレクトリっていう名前はどうよって思う)
もうちょっと調べればよかった気もするがわたしは30秒以上悩むのが嫌いなので別方針を考えた。
で
思いついたのがユーザエージェント。
テーマ表示より前にどの端末でアクセスしたか見ればテーマがリネームされた時でも
良い感じで表示してくれるのでは?と考えた。
んで考えたのがこんなソース
1 2 3 4 5 6 7 8 9 | <?php $ua=$_SERVER['HTTP_USER_AGENT']; if((strpos($ua,'iPhone')!==false)||(strpos($ua,'iPod')!==false)||(strpos($ua,'Android')!==false)){ ?> スマホですね<br> <?php }elseif(ereg("^J-PHONE|^Vodafone|^SoftBank|^DoCoMo|^UP.Browser|^KDDI", $ua)){ ?> 携帯ですね<br> <?php }else{ ?> PCですね<br> <?php } ?> |
これで本文に記入して3端末ごとにフラグを立てて表示したい文字を出せば良い。
もっと賢いやり方があったらどなたか教えてくださいー
- 投稿タグ
- WordPress