WordPressには、サイト閲覧者の端末がモバイル端末かを判定するwp_is_mobile関数という便利な関数があります。
これを使うとモバイル端末には広告A、PCでは広告Bを表示させるといった動作(分岐)が可能です。
ただ、wp_is_mobile関数が効かない(動いていない)というケースに遭遇することがあります。
コードを正しく書けていることが前提ですが、こういう場合はwp_is_mobile関数ではなく、キャッシュ系プラグインを一番始めにチェックするべきです。
先日、わたしも同様の状況にハマりましたが、原因はキャッシュ系プラグインでした。
wp_is_mobile関数が効かない時の対処法
1.まずキャッシュ系プラグインを停止して、動作を確認しましょう。
※ダッシュボード>プラグイン>インストール済みプラグインから停止
それで正しく表示されるようなら、wp_is_mobile関数が悪い訳ではないことが分かります。
2.キャッシュ系プラグインを再有効化して、設定を行ってください。
LiteSpeed Cacheの場合はsettings>Generalタブ>Enable Separate Mobile ViewをEnableに変更>Save Changesをクリック。
2017/10/17追記
アップデートにより、LiteSpeed Cacheの管理画面が変わっているので補足です。
新しい設定方法は、管理画面>LiteSpeed Cache>設定>[2] キャッシュ>モバイルをキャッシュをオンに変更>保存ボタンをクリックとなります。
※有名どころのキャッシュ系プラグインなら、モバイルの除外設定やモバイルとPCのキャッシュを分ける機能があると思いますので、検索してみてください。
3.再設定が終わったら、動作確認をして終了です。
思ったこととか
サイトの動作確認をする時はキャッシュ系プラグインを無効にするのが当たり前なのでしょうが、初めてWordPressテーマを作ったので、そこが完全に抜け落ちていました。
今度からは気を付けたいと思います。
おわり