# WordPressのwp_is_mobile()で条件分岐をするときは、キャッシュの設定に注意 URL: https://webrandum.net/wordpress-wp_is_mobile-cache-setting/ 公開日: 2019-09-19 更新日: 2020-04-05 カテゴリー: コーディング タグ: WordPress, キャッシュ 出典: Webrandum(著者: サイトウ マサカズ) WordPressには`wp_is_mobile()`という条件分岐タグがあって、これを使うことでデバイスごとに表示の出し分けが可能です。 ## wp_is_mobile()でスマホからのアクセスを判断 `wp_is_mobile()`という条件分岐タグを使うと、スマホからアクセスしているときに`true`、それ以外の場合は`false`が返ってきます。 具体的な使い方はPHPのif文で下記のように書くことで、スマホとPCで表示するコードを出し分けられます。 ``` // スマホで表示するコード // PCで表示するコード ``` 使用するときの注意点としては、「画面サイズではなくあくまでデバイスでの分岐がされる」ことが挙げられます。 例えばPCのブラウザサイズを小さくしてスマホサイズにしても、条件分岐としては「PCから見ている」という判定になるため、PCで表示するコードが表示されます。 ## スマホでキャッシュを使うと分岐がうまくできない場合がある ここからが本題ですが、プラグインの設定などでスマホでもキャッシュを有効にしていると、この`wp_is_mobile()`による条件分岐がうまく動作しないときがあります。 そもそもプラグインなどで設定するキャッシュは、毎回アクセスするたびにPHPで処理をしていると時間がかかってしまうので、すでに処理したデータを残しておいて、それが見つかればデータを優先して返すというものです。 そのため、`wp_is_mobile()`を使ったPHPによる条件分岐が使われず、スマホで見たときもサーバーに残っているPC用のコードが返ってきてしまう恐れがあります。 ### スマホではキャッシュを使わないようにする ちゃんとPHPによる条件分岐が動くようにするためには、スマホではキャッシュを使わないようにする必要があります。 例えば、WordPressのキャッシュ系プラグインで有名な「[WP Fasetest Cache](https://ja.wordpress.org/plugins/wp-fastest-cache/)」を使っている場合は、設定画面に「モバイルユーザーに対してキャッシュを表示しない」という項目があるのでそこにチェックを入れて、キャッシュを1度クリアします。 ![WP Fastest Cache](https://webrandum.net/mskz/wp-content/uploads/2019/09/image_1-19.png) これでスマホを見れば、ちゃんと条件分岐されて表示されているはずです。