wordpress 静的html生成プラグイン その2

前回、WordPress静的HTML生成プラグイン [forWEB屋]
http://www.4web8.com/wordpress%E9%9D%99%E7%9A%84html%E7%94%9F%E6%88%90%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3
を使い、全ページを静的ファイルに落としましたが、それでも各ページ0.7秒かかっています。
そこで、
make-cache/make-cache.phpの
add_action(‘init’, ‘initialize’ );
=>
add_action(‘plugins_loaded’, ‘initialize’ );
に修正したところ、0.4秒になり早くなった。どうも多種のphpファイルのロードとDBへのアクセスに時間がかかっているようです。

せっかく、make-cacheで全ページを静的ファイルに落としているので、他のphpファイルのロードとかDBへのアクセスはまったく必要ないので、一層のこと、トップのindex.phpに強引にmake-cache.phpのinitialize()の内容を追記した。
尚、wordpress関連のphpローディング前なので、wordpress関連の関数は使えません。DBにアクセスしたい場合は自力でアクセスする必要があります。

index.php
---------
if( !preg_match("/nocache/",$_SERVER['QUERY_STRING']) ){
$url = "http://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];
$url = preg_replace("//$/","",$url);
if( !preg_match("/.html/",$url) ){ $url .= "/index.html"; }
//$rooturl = get_option('home');
$rooturl = "https://www.picolix.jp/blog";
$url = preg_replace("#$rooturl#","",$url);
if( file_exists("xxxxxxxxxxxxxxxxxx/wp-content/plugins/make-cache/cache$url")){
$fp = @fopen("xxxxxxxxxxxxxxxxx/wp-content/plugins/make-cache/cache$url","r");
if($fp){
while(!feof($fp)){
$buf = fgets($fp);
echo $buf;
ob_flush();
flush();
}
fclose($fp);
}
}
}

これで、計測すると、0.04秒となり。phpからの静的ファイルread,write時間だけとなり、ものすごく速くなりました。(というか静的ファイルとほぼ同等な速さです。)
ついでに、このページナビゲータ部分のpage_navigation()も修正してmake-cache
も正しく出力してくれるようになりました。
ん~。MT3.2からwordpress3.2.1より、MT3.2から素直に、MT5への移行で良かったような気がしてきた。まあ、wordpressを使うってところに意義があるか・・

wordpress 静的html生成プラグイン

wordpressは、アクセスの度にコンテンツ動的生成し、phpファイルが多数インクルードされます。

ましてプラグインをいっぱい入れていると尚更です。
また、固定ページといえども、DBからデータを取得するので結構、アクセスの多いサイトは、負荷がかかります。
当サイトは普段はそんなにアクセスはありませんが、窓の杜でのバージョンアップリリース記載時には、アクセス過多となり相当な負荷となります。

このサーバは、ブログ以外にOsgrid opensimとかWEBキャプチャーシステム、その他のサービスが普段動いています。ブログアクセスだけで過負荷になるのは悲しい。

そこで、キャッシュプラグインの登場ですが、通常 wp-super-cache を使うと思いますが、これはアクセスがあった時に、キャッシュします。

アクセスの頻度が少なくなるとキャッシュから消えるのですが、MTを使ってた私としては、やっぱり全部静的ページに落としたいところです。

探していたところ、
WordPress静的HTML生成プラグイン [forWEB屋]
http://www.4web8.com/wordpress%E9%9D%99%E7%9A%84html%E7%94%9F%E6%88%90%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3
を見つけました。
cacheフォルダーに全部静的ファイルを生成してくれます。(30分かかりましたが。)
静的ファイルができますがこのファイルは、phpから読み込まれて表示されます。
まあ、これで十分だと思います。

※独自改造やプラグインの種類によっては、変換が上手くいかないことがあります。
例)
http://design-plus1.com/2010/10/page-navigation.html
こちらのpage_navigation()を使っていたのですが、このページナビゲータ部分が
正しく生成できなかったので、page_navigation()は使わず。
デフォルトのprevious,nextを使うようにしました。