NginxでWordPressスマホとPCの判定 wp_is_mobile()使用テーマの注意

ホーム > 業務日誌 > スタッフ別 > > NginxでWordPressスマホとPCの判定 wp_is_mobile()使用テーマの注意

Apache Nginx

WordPressのスマホでのアクセスで判定を行うwp_is_mobile関数を使用している場合は、キャッシュ系のモジュールと相性が宜しくありません。とくにNginxを利用する場合はアクセスが多いケースなど困ったりします。そこで今回はNginxで判定したUAを利用して、WordPress用の新しい関数を作成して対応する方法の御紹介です。

環境

  • Nginx
  • PHP-FPM
  • fastcgi cache
  • WordPress

 

Nginxの設定

Nginxのコンフィグにmobile判定させるディレクティブを挿入します。

モバイル端末のUAがある場合は$mobileに値を入れて、それを任意のパラメータにしてFastCGIに渡します。

 

反映させます。

 

WordPressテーマファイルへの設定

○WordPress function.php

下記を追加する

パラーメータの値が入っていればモバイルなのでtrue、何もなければPCからのアクセスでありfalseを返します。

 

検証してみよう

検証したい位置に張って、PCとモバイル端末でアクセスしてみよう。

 

PCでアクセスした場合

Nginx スマホ PC 振り分け

falseと判定がでました。

 

 

スマホでアクセスした場合

Nginx スマホ PC 振り分け

trueと判定されました。

Chromeの開発者ツールでiPhone 6 Plusと擬態してアクセスしましたが、正常にモバイル判定が出来ています。

 

wp_is_mobile関数からの移行方法

wp_is_mobile()関数をis_mobile_detect()関数に切り替える。

そんなに難しくないですね。使用しているテーマにwp_is_mobileがある場合、スマホ専用の広告表示や特別な処理があるテーマの場合は注意が必要です。

今回はNginx+PHP-FPM+fastcgi cache+WordPressの構成でしたが、Apache+WP Super Cache等のキャッシュ系プラグインを採用する場合も、ひと手間が必要になります。

お疲れ様です。

 

金広 優 (エンジニア)

この記事を書いた人:金広 優 (エンジニア)

システムガーディアン爆弾処理班。アクセス負荷対策やNginxへの移行案件が多いこの頃。IBM SoftLayerやAWSなどクラウド案件も多くなってきました。

この記事に関してのお問い合わせ
御連絡・ご返信は原則2営業日以内を予定しております。
お急ぎの場合は、お手数ですが下記電話でもご対応をしております。

システムガーディアン株式会社
受付時間:平日9:00~18:00
受付担当:坪郷(つぼごう)・加藤
電話:03-6758-9166