キャッシュタグの投稿

2008-05-23
晴れ

Ktai Style と WP Super Cache を併用する

ゆりこ による 01:53:09 の投稿
カテゴリー: WordPressハック
タグ: , ,

以前、Ktai Style と WP-Cache の併用方法を紹介しましたが、WP Super Cache への対応も可能となりましたので、紹介いたします。

[追記: 2009-02-22] Ktai Style 1.70 から、WP Super Cache 0.6.8 以降を利用していれば .htaccess が自動で書き換わるようになりました。以下の手順は不要です。詳しくは Ktai Style の附属ドキュメント「WP-Cache および WP Suer Cache と併用する場合」を参照してください。

[追記: 2009-12-31] Ktai Style 1.81 から、WP Super Cache 配下の plugins ディレクトリーに入れる patch-supercache-ktaistyle.php ファイルを提供するようにしました。今後は WP Super Cache に同梱してもらう予定です。以下の手順は確認方法のみが有効なので、それ以外は del で消しました。

基本的には、WP Super Cache が生成する .htaccess で携帯電話のユーザーエージェントを除外させ、変数 $super_cache_enabled を false にすれば OK です。原理としては WP-Cache と同じなのですが、.htaccess にユーザーエージェントを書いてしまっているので、将来、対応する端末が増えたときは、ユーザーが手動で .htaccess を更新する必要があるのが注意点です。WP-Cache の方はメンテナンス不要なのですが……。

ダウンロード: patch-wpcache.php
最新の Ktai Style に同梱されていますので、それをご利用ください。

今回、wpcache.php を patch-wpcache.php に名称変更し、CVS からダウンロードしてもらうことにしました。設置方法は WP-Cache とほぼ同様です。

  1. wp-cache-config-sample.php を複製して wp-cache-config.php を作り、46 行目 ($cache_rejected_user_agent を定義した直後) に以下のコードを書く。
    
    if (file_exists(ABSPATH. 'wp-content/plugins/ktai_style/patch-wpcache.php')) {
            include ABSPATH. 'wp-content/plugins/ktai_style/patch-wpcache.php';
    }
  2. wp-cache-config.php を wp-config/ 直下に置き、WP Super Cache を有効にする。
  3. WP Super Cache で .htaccess の書き換えを行い、さらに手動で以下のコードを2か所ある RewriteRule の直前に挿入します。
    
    RewriteCond %{HTTP_USER_AGENT} !^(DoCoMo/|J-PHONE/|J-EMULATOR/|Vodafone/|MOT(EMULATOR)?-|SoftBank/|[VS]emulator/|KDDI-|UP\.Browser/|emobile/|Nokia)
    RewriteCond %{HTTP_USER_AGENT} !(DDIPOCKET;|WILLCOM;|Opera\ Mini|Windows\ CE;|PlayStation\ Portable;|Nitro)
    

    →※追記する内容は、Ktai Style 附属ドキュメント README.ja.html を参照してください。

  4. ログアウト状態、かつ、クッキーを削除した状態の PC で閲覧して、リロードしたとき、XHTML ソースの末尾に “super cache” の表示があることを確認する (WP Super Cache の動作確認)
  5. 携帯電話で同じページを閲覧して、携帯向け表示になっていることを確認する。PC 表示だったり文字化けしていたら失敗です。
  6. 再度 PC で同じページを見て、携帯向け表示になってないことを確認する (携帯ページがキャッシュされてないかの確認)。

携帯向け表示の確認は、Firefox で UserAgentSwitcher を使ってしまうと、ブラウザーのキャッシュに携帯向けページが残ってしまい、再度 PC で見たときの確認がうまくいきません。電話の実機で行うことをおすすめします。もしくは、PC 向け表示の確認には別のブラウザーを使ってみてください。

.htaccess で携帯電話のユーザーエージェントを検出すればいいことは分かっていたのですが、Super Cache の確認環境がうまく動作せず、確認していませんでした。今回、対応にチャレンジされた方がおられたため、重い腰を上げて環境を整え、対応させることにしました。ポイントとしては、.htaccess ではスペースをバックスラッシュでエスケープする必要があることでしょうか。これに気がつかないと HTTP 500 エラーになります。

2008-05-16
晴れ

Ktai Style と WP-Cache を併用する

ゆりこ による 12:38:09 の投稿
カテゴリー: WordPressハック
タグ: , ,

ページ表示をキャッシュするプラグイン WP-Cache (日本語版) は、そのままKtai Style による携帯電話向け表示で問題があって併用できません (携帯電話に PC 向け表示が出たり、携帯向け表示になっても文字化けしたり)。それを回避するコードを開発しましたので、公開してみます。まだ試験段階なので、別途配布の状態です。現在、「旅行記」の方で実運用しています。Ktai Style 1.35 で正式採用しました。

ダウンロード: wpcache0517.zip (777バイト)
CVS からダウンロード: patch-wpcache.php
Ktai Style 最新版に同梱している patch-wpcache.php を使ってください
  1. 圧縮ファイルを展開して、patch-wpcache.php をサーバーの wp-content/plugins/ktai_style/ ディレクトリーに入れます。(追記: wpcache.php から patch-wpcache.php にリネームしました)
  2. WP-Cache を入手し、展開します。wp-cache-config-sample.php を複製して wp-cache-config.php を作り、19行目 ($cache_rejected_user_agent を設定した直後) に以下のコードを書きます。
    if (file_exists(ABSPATH. 'wp-content/plugins/ktai_style/patch-wpcache.php')) {
            include ABSPATH. 'wp-content/plugins/ktai_style/patch-wpcache.php';
    }
  3. WP-Cache をインストールします。wp-cache-config.php は wp-content/ 直下に入れます。
  4. WP-Cache を有効にします。携帯電話で見て文字化けしていないことを確認してください。

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

[追記] 少し問題が発生しました。スマートフォン等で「PC表示にする」と切り替えたときは、キャッシュされず、また、キャッシュを使いません。PC 表示をするかどうかはクッキーを使っていますが、wpcache.php でそのクッキーを見るようにしてみます。→配布ファイルを差し替えました。

[追記 2008-05-23] WP Super Cache への対応も行いました。