ハンターリンク

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
前の記事
次の記事
関連する記事

1 Trackbacks

  1. TokyoLife::Dalog :

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

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

コメントをどうぞ

コメントフォーム

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



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