ハンターリンク

2007年08月25日 土曜日

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
QRcode:278
Trackback URL

※ 本文にhrlk.comへのリンクがない場合は登録されません。
この記事のコメントRSS
http://hrlk.com/2007/08/25/mobile-eye-plus_wp-cache/feed/

ナビゲーション

タグ
, , ,
カテゴリ
PHP
前の記事
次の記事
関連する記事

4 Trackbacks

  1. TokyoLife::Dalog :

    WordPressメモ:WP-CacheとMobileEye+を併用できました…

    ハンターリンクさんで配布されている
    携帯閲覧用プラグインMobileEye+が
    Ver1.3.0になっていたので
    ウキウキとアップデートしてみました。
    そしてハンターリンクさんの記事を…

  2. Mobile Eye+(Ktai Style)とWP-Super Cacheを併用する(修正版) - 気が付けば逆ゾンビ :

    […] 前に書いた記事ですが、Super Cacheのバージョンアップがあったり、前に書いた物だけじゃ上手く行かないことに気付いたので今回はまとめも兼ねて追記します。 また、携帯識別方法等に関してはYuriko.netさんで配布されているKtai Style用のパッチのソースを参考(と言うかほぼそのまま)に、しています。 よって(こちらの内容に関してはハンターリンクさんのこちらの記事で紹介されているwp-cache-phase1.phpの修正は不要です。 […]

  3. WP-Super CacheとKtai Style等を併用可能に。 - 気が付けば逆ゾンビ :

    […] その場合は、こことかここを参考に。 ってかKtai […]

  4. Yuriko.Net » Ktai Style と WP-Cache を併用する :

    […] 以前から WP-Cache との併用をどうすればいいか検討していましたが、できるだけ簡単に設定する方法として、以上のような手法となりました。けっきょく、携帯電話では一切キャッシュしないという方法になっています。Mobile Eye+ と WP-Cache を併用する場合は、携帯電話向けコンテンツも別途キャッシュしていますが、Ktai Style の場合は、機種ごとに絵文字やページ分割位置が異なるため、「キャッシュしない」という方法を取らざるを得ません。携帯電話向けには、オブジェクトキャッシュを行う方向で検討してみます。 […]

コメントをどうぞ

コメントフォーム

※コメントを投稿してもキャッシュが効いているためすぐには反映されない場合があります。



Home » 2007 » 8 月 » 25 » Mobile Eye+とWP-Cacheを併用する