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

[WordPress]強引なキャッシュ

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

single.php

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

single.php

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

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

single.php

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

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

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

投稿日 2010年6月 9日 03:11
カテゴリ PHP
タグ WordPress
トラックバック URL http://www.kantenna.com/cgi-bin/mt504/mt-tb.cgi/1213

コメント

コメントする
Name
Email Address
URL