ECさんによっては、パソコン向けの広告とモバイル向けの広告が用意されてることがありますよね。2つ並べてもいいけれど、あまり見る人を混乱させたくないなーと思ったら、やっぱり分けて表示したいもの。

メインブログで使っていた振り分けのタグがレスポンシブではエラーが出たので、ネットをさまよってみました。

メインブログでは問題なく使えていたタグ

ずっと前にネットで検索して見つけてきたこのコードをメインブログで使っていたのですが…。

<!–ここからPRのコード–>
<?php if(is_mobile()) { ?>
(モバイルの広告をここに)
<?php } else { ?>
(パソコンの広告をここに)
<?php } ?>
<!–/ここにPRのコード–>

今度初めてテーマブログに設置しようとすると、エラーが出ます(汗)

【表示されたエラーメッセージ】
Fatal error: Call to undefined function wp_is_mobile() in /●●●/▲▲▲/■■■ on line (ここは数字)

このエラーメッセージの「in」から前をそのまま検索してみたところ、WordPressの質問掲示板のやりとりがヒットしました。

それによると…。

「これは、「wp_is_mobile という定義されていない関数が呼ばれました。」というエラーメッセージです。」

だ、そうです。

え、定義されていないってどういうこと?

そういえば、うまくいかなかったブログはレスポンシブのテーマですよ。メインブログはレスポンシブじゃなくて、スマホ向けに別の画面が用意されているっぽい。

ということは、メインブログにはモバイル表示に必要な何かがテーマの中にあったから動いてくれて、レスポンシブのテーマにはモバイル表示に必要な何かが用意されていなかったので動かなかったということかな(汗)

何とかして表示するには、どうやらfunctions.phpに手を加えないといけないみたいですよ。

でも、そのファイルはあんまり触りたくないんですよねー。何か他にいい方法はないものかしら。

WPのバージョンが高ければ、モバイル向けのタグに対応してないテーマでも振り分けができる♪

ということで検索してみたところ、ありました! 「ウェブの触手」というブログでは、こんなことが書かれています。

でも WordPress 3.4 からは上記の内容をたった一つの命令で済ませられる「wp_is_mobile」関数が標準で搭載されるようになったんです。

【WordPress】wp_is_mobile関数のおかげでとっても簡単になったスマホ対策条件分岐

「関数が標準で搭載されるようになった」?

これはもしかして、レスポンシブのテーマを使ったブログでも使えるかもしれませんよ♪

ということで、「ウェブの触手」で紹介されていたタグで試したところ、無事、表示することができました。万歳。

同記事ではこの他に、「スマホでの表示時のみ、特定のコンテンツを表示させる」とか、「スマホでの表示時のみ特定のコンテンツを表示させない」といった方法も紹介されていましたよ。

今度、そんな必要が出てきたらまた見に行こう…。その時はまたどうぞよろしくお願いいたします(汗)

それにしても、うまくいったほうとダメだったほう両者を比べてみても、ほとんど同じように見えるんですよね。

【うまくいったほうの最初の行のタグ】
<?php if (wp_is_mobile()) :?>

【ダメだったほうの最初の行のタグ】
<?php if(is_mobile()) { ?>

ちょびっとしか違わないのに動いたり動かなかったり。
WordPressって、便利だけどほんと難しいわ(汗)