KANTENNA.COM

Solarized

HOME > WEBプログラム覚書 > [WordPress]強引なキャッシュ

[WordPress]強引なキャッシュ

おぉーーっとこれは実用性のない強引なキャッシュだー!

single.php

例えば投稿ページ。たぶんこんな感じが多いはず。

PHP
  1.  <?php
  2.  <?php get_header(); ?>
  3.  
  4.  投稿ページの処理
  5.  
  6.  <?php get_footer(); ?>
  7.  ?>

それをこんな感じにしてやるとプレビュー以外でHTTPアクセスした場合、投稿ページの処理結果(HTML)をキャッシュする。

PHP
  1.  <?php
  2.  <?
  3.  $frontend = 'Core';
  4.  $frontend_option = array(
  5.   'lifetime' => 604800
  6.   );
  7.  
  8.  $backend = 'File';
  9.  $backend_option = array(
  10.   'cache_dir' => './cache/',
  11.   'file_name_prefix' => 'wp_single_'
  12.   );
  13.  
  14.  $cache = Zend_Cache::factory($frontend, $backend, $frontend_option, $backend_option);
  15.  
  16.  $cache_id = md5($_SERVER["REQUEST_URI"]);
  17.  
  18.  if ($cache->load($cache_id)) {
  19.   echo $cache->load($cache_id);
  20.   exit;
  21.  }
  22.  
  23.  ob_start();
  24.  ?>
  25.  
  26.  <?php get_header(); ?>
  27.  
  28.  投稿ページの処理
  29.  
  30.  <?php get_footer(); ?>
  31.  
  32.  <?php
  33.  if (strpos($_SERVER['REQUEST_URI'], 'preview=true') === false) {
  34.   $con = ob_get_contents();
  35.   $cache->save($con_id, $con);
  36.  }
  37.  
  38.  ob_end_flush();
  39.  ?>
  40.  ?>

変な改造してない場合はWP-Cache使うと良いと思います♪

もしかするとフロントエンジンはPage使った方が簡単かも??

トラックバック(1)

2011年10月 5日 03:49

[WordPress]ハマりポイントget_user_meta()WEBプログラム覚書

ローカル環境で動いて本番環境で動かない。ローカル環境と本番環境で$table_prefixが異なる場合などget_user_meta()使ってないか確認し...続きを読む

コメント

コメントする
Name
Email Address
URL
TIME LINE
2012
02.03

[jQuery]closest()とparents()

今から16年前Netscapeブラウザのソースコードの公開方法の会議の中で、初めてオープンソースという言葉が使われた今日、 みなさんいかがお過ごしでしょうか。

今回の投稿はそれとは関係のないjQueryのparents()とclosest()が 似てたので何が違うのか試した時のメモです。

2012
02.01

[jQuery Mobile]初期化イベントメモ

jQuery Mobileは読み込まれてから

mobileinit -> pagebeforecreate -> pagecreate -> pageinit

の順番でイベントが発生する。

2012
02.01

[WordPress]管理画面のフッタのフィルタとアクション。

時間も時間なので、あまり使用頻度の高くない微妙なネタを。

会員制サイトなどで不特定多数の人にログインさせる場合、フッタのバージョン情報は隠しておきたかったり、 こじゃれたメッセージを表示したいときとか使うアクションとフィルタ。

2012
01.28

[WordPress] ブログの情報を取得する方法とノーキャッシュ疑惑

ブログのget_bloginfo()で取れないデータが必要な場合に使うもの。

2012
01.26

[jQuery Mobile]ダイアログ

jQuery Mobileにおけるダイアログの扱いはウインドウではなくページ。 なので通常のページと同様に扱える。ダイアログウインドウを出す。じゃなくダイアログページに遷移する。的な。

2012
01.25

[Ubuntu11.10]Ubuntuのインストール後の設定

インストール完了後の環境構築。PC起動時いちいちBIOSからブートドライブ選んで ブートするのかと思ってたら起動時にOS選択画面が出てくる。

すばらしいですね。

2012
01.24
2012
01.23

MinGW+Mintty+Git

MinGW+Mintty+Gitをやろうとして失敗に終わった。このエントリーには収穫できるものはありません。

2012
01.21

[PHP]共有サーバーユーザーのためのPEARインストール方法

共有サーバーでは自由にPEARのパッケージがインストールできないので、 プロジェクトローカルに設置することになりますが、以前httpベースのものを使ってみたんですけど、 やたら重くて使い物にならなかったので、僕は普通にFTPでアップするようにしてます。

ってことでプロジェクトローカルへのPEARのインストール方法。