WordPressのwp_is_mobile()で条件分岐をするときは、キャッシュの設定に注意

WordPressにはwp_is_mobile()という条件分岐タグがあって、これを使うことでデバイスごとに表示の出し分けが可能です。
wp_is_mobile()でスマホからのアクセスを判断
wp_is_mobile()という条件分岐タグを使うと、スマホからアクセスしているときにtrue、それ以外の場合はfalseが返ってきます。
具体的な使い方はPHPのif文で下記のように書くことで、スマホとPCで表示するコードを出し分けられます。
<?php if( wp_is_mobile() ): ?>
// スマホで表示するコード
<?php else: ?>
// PCで表示するコード
<?php endif; ?>使用するときの注意点としては、「画面サイズではなくあくまでデバイスでの分岐がされる」ことが挙げられます。
例えばPCのブラウザサイズを小さくしてスマホサイズにしても、条件分岐としては「PCから見ている」という判定になるため、PCで表示するコードが表示されます。
スマホでキャッシュを使うと分岐がうまくできない場合がある
ここからが本題ですが、プラグインの設定などでスマホでもキャッシュを有効にしていると、このwp_is_mobile()による条件分岐がうまく動作しないときがあります。
そもそもプラグインなどで設定するキャッシュは、毎回アクセスするたびにPHPで処理をしていると時間がかかってしまうので、すでに処理したデータを残しておいて、それが見つかればデータを優先して返すというものです。
そのため、wp_is_mobile()を使ったPHPによる条件分岐が使われず、スマホで見たときもサーバーに残っているPC用のコードが返ってきてしまう恐れがあります。
スマホではキャッシュを使わないようにする
ちゃんとPHPによる条件分岐が動くようにするためには、スマホではキャッシュを使わないようにする必要があります。
例えば、WordPressのキャッシュ系プラグインで有名な「WP Fasetest Cache」を使っている場合は、設定画面に「モバイルユーザーに対してキャッシュを表示しない」という項目があるのでそこにチェックを入れて、キャッシュを1度クリアします。

これでスマホを見れば、ちゃんと条件分岐されて表示されているはずです。



CodeAnywhereでターミナルに触る練習をする
WordPressで「現在メンテナンス中のため、しばらくの間ご利用いただけません。」の状態でログインできなくなった場合の対処法
Visual Studio Codeで正規表現にマッチするか確認できる拡張機能「Regex Previewer」
Google Maps APIでピンをクリックしたときに吹き出しを表示する方法
Font Awesome 5の基本的な使い方と、Font Awesome 4との違い
iOSシミュレーターを使ってWebサイトを開発者ツールを見ながら実機表示で開発する方法
Visual Studio Codeを使ったコード整形方法(Fomatter)
scpコマンドでターミナル接続先のリモートファイルをローカルにダウンロードする方法
iTerm2でさらに細かい機能の設定ができる環境設定の「Advanced」タブ
コーディングで「スペース」と「タブ」のどちらを使えばいいのか?
iTerm2で「Use System Window Restoration Setting」を設定しているとアラートが表示されて機能しない
Google Chromeのサイト内検索(カスタム検索)機能を別のプロファイルに移行する方法
iPadで入力モードを切り替えずに数字や記号をすばやく入力する方法
iPhoneやiPadでYouTubeの再生速度を3倍速や4倍速にする方法
Keynoteで有効にしているはずのフォントが表示されない現象
MacのKeynoteにハイライトされた状態でコードを貼り付ける方法
AirPodsで片耳を外しても再生が止まらないようにする方法
iTerm2でマウスやトラックパッドの操作を設定できる環境設定の「Pointer」タブ
DeepLで「インターネット接続に問題があります」と表示されて翻訳できないときに確認すること
Ulyssesの「第2のエディタ」表示を使って2つのシートを横並びに表示する
Neovimを使い始める最初の一歩として便利な「LazyVim」
ウェブサイトをmacOSアプリとしてラッピングする「Unite Pro」
Keyboard Maestroの「Macro Debugger」で複雑なマクロのデバッグを行う方法
無料版でも高機能なランチャーアプリ「Raycast」の基本機能と環境設定
OnyXでターミナルを使わずにmacOSの詳細設定を行う
軽量で高速なターミナルエミュレーター「Ghostty」の設定方法
Eagleで実現するクリエイティブ素材の簡単管理
かゆいところに手が届く「Supercharge」でMac環境を便利にカスタマイズする
超軽量なコードエディタ 「Zed」をサブエディタとして活用する
Bartender 6で追加されたWidgets機能で自作メニューバーアイテムを簡単に作成する