キバンインターナショナルでは、Wordpressの高速化させるために、wp-cacheというプラグインを使っています。このプラグインは、一度生成したHTMLをファイルシステムにキャッシュすることで、2件目以降のアクセスを圧倒的に高速化できるのですが、そのままでは、iPhone用のプラグイン(WPtouch iPhone Theme)と共存できません。
iPhone用のプラグインをインストールすると、PCで閲覧した場合と、iPhoneから閲覧した場合で異なるHTMLが出力されるようになります。しかし、wp-cacheは、iPhone用のプラグインと組み合わせて使うことが想定されていないため、最初に出力したHTMLを記憶してしまいます。そのため、最初にiPhoneでアクセスしてしまうと、パソコンで見てもiPhone用のデザインで、最初にパソコンで見るとiPhone用のデザインで表示されてしまいます。
この問題を解決するために、iPhoneから閲覧した場合はキャッシュを無効化するように、wp-cacheを書き換えました。
wp-cache/wpcache-phase1.php 13行目付近を以下のように変更しました
変更前
if (!$cache_enabled || $_SERVER[“REQUEST_METHOD”] == ‘POST’)
return;
変更後
if (!$cache_enabled || $_SERVER[“REQUEST_METHOD”] == ‘POST’ || strpos($_SERVER[‘HTTP_USER_AGENT’],’iPhone’) !== false)
return;
ifの条件部分に、エージェント判定を追加しました。ユーザエージェントにiPhoneが含まれている場合は、キャッシュのプラグインの処理を行いません。iPhoneでアクセスした時のレスポンスは若干低下しますが、パソコンと比べてネットワーク接続もハードも非力なので、問題なく運用できています。
Facebookページもよろしくお願いします
記事の投稿者
a.takeuchi a