Mobile Eye+とWP-Cacheを併用する
Mobile Eye+とWP-Cacheでは相性が悪く、先にPCで表示されると携帯でアクセスしたときにPC用のキャッシュされたページが表示されてしまう問題があった(逆もまた然り)。そこでWP-Cacheを編集してUserAgentで処理をわけちゃおうというわけ。うちではだいぶ前からやってたことなんだけど、実際ちょっと困っていたユーザもいたりするので、編集すべきところをまとめておきます。
説明は現時点の最新版であるwp-cache 2.1.1向け
キャッシュ処理を呼び出す動作をする wp-cache-phase1.php の編集
UserAgentによって処理を分けます。携帯端末なら$keyの末尾に”_m”を付ける。
22行目の
$key = md5($_SERVER['SERVER_NAME'].preg_replace('/#.*$/', '', $_SERVER['REQUEST_URI']).wp_cache_get_cookies_values());
を
$mobile_key = '';と入れ替える。
if (preg_match(
"/^(?:DoCoMo|KDDI|SoftBank|Vodafone|J-PHONE|UP\.Browser|MOT-|L-mode|Nokia|PDXGW)|".
"SHARP\/WS.*?Opera|WILLCOM|DDIPOCKET|Opera Mini/", $_SERVER['HTTP_USER_AGENT']))
$mobile_key = '_m';
$key = md5($_SERVER['SERVER_NAME'].preg_replace('/#.*$/', '', $_SERVER['REQUEST_URI']).wp_cache_get_cookies_values()).$mobile_key;
キャッシュデータを作成する wp-cache-phase2.php の編集
wp-cache-phase1.phpの編集だけで動作しますが、念のためContent-Typeあたりを対策(Shift_JISのはずがUTF-8で保存されていたことがあったので)
231行目の
$value = "text/html; charset=\"" . get_settings('blog_charset') . "\"";
を
$value = "text/html; charset=\"" . (is_mobile() ? 'Shift_JIS' : get_settings('blog_charset')) . "\"";
に入れ替える。(タイミング的にMobile Eye+の関数が使えるので使ってます)
オプション画面を作成する wp-cache.php の編集
もうこれは編集しなくてもいいけど、Cache contentsのListでMobile Eye+のキャッシュであるかパッと見で判別するためのもの。
572行目の
echo '<td><a href="http://' . $meta->uri . '" target="_blank" >'
を
$type = (preg_match("/^(?>.*)(?<=_m\.meta)/", $file)) ? '[m]' : '';
echo '<td>'.$type.'<a href="http://' . $meta->uri . '” target=”_blank” >';
に入れ替える。
記事の情報
- 作成日
- 2007年08月25日 土曜日 11:19:04
- 更新日
- 2007年08月25日 土曜日 11:24:34
- この記事のURL
- http://hrlk.com/2007/08/25/mobile-eye-plus_wp-cache/
- QRcode

- Trackback URL
※ 本文にhrlk.comへのリンクがない場合は登録されません。- この記事のコメントRSS
- http://hrlk.com/2007/08/25/mobile-eye-plus_wp-cache/feed/
ナビゲーション
- タグ
- Mobile-Eye+, PHP, plugin, WordPress
- カテゴリ
- PHP
- 前の記事
- WordPressプラグイン「Mobile Eye+ v1.2.3/v1.3.0」リリース
- 次の記事
- 「MIME-Typeとdisposition」にA5527SA,A5528Kアイコン追加
- 関連する記事
WordPressメモ:WP-CacheとMobileEye+を併用できました…
ハンターリンクさんで配布されている
携帯閲覧用プラグインMobileEye+が
Ver1.3.0になっていたので
ウキウキとアップデートしてみました。
そしてハンターリンクさんの記事を…
[…] 前に書いた記事ですが、Super Cacheのバージョンアップがあったり、前に書いた物だけじゃ上手く行かないことに気付いたので今回はまとめも兼ねて追記します。 また、携帯識別方法等に関してはYuriko.netさんで配布されているKtai Style用のパッチのソースを参考(と言うかほぼそのまま)に、しています。 よって(こちらの内容に関してはハンターリンクさんのこちらの記事で紹介されているwp-cache-phase1.phpの修正は不要です。 […]
[…] その場合は、こことかここを参考に。 ってかKtai […]
[…] 以前から WP-Cache との併用をどうすればいいか検討していましたが、できるだけ簡単に設定する方法として、以上のような手法となりました。けっきょく、携帯電話では一切キャッシュしないという方法になっています。Mobile Eye+ と WP-Cache を併用する場合は、携帯電話向けコンテンツも別途キャッシュしていますが、Ktai Style の場合は、機種ごとに絵文字やページ分割位置が異なるため、「キャッシュしない」という方法を取らざるを得ません。携帯電話向けには、オブジェクトキャッシュを行う方向で検討してみます。 […]