WordPressで静的ファイルを書き出す
WordPressで作成されたページを静的ファイルに落とし込む方法を紹介します。
まえがき
WordPressで約3000件の記事データの情報をXMLファイルとして書き出して扱おうとしたところ、データが多すぎることによりXML生成にかかる時間が1分くらい掛かって使い物になりませんでした。
そこで、そのXMLファイルだけ静的なファイルとして書き出すことにしました。MovableTypeの再構築的な感じですね。
付け焼刃の突貫工事的な感じで無理くり実装したのでその時の覚え書きです。
WordPressで生成されたページをphpを介して静的ファイルに落とし込む
静的ファイルをサーバーに置いておく
あらかじめ用意しておいた静的ファイルに、WordPressで生成するファイルのコードをphpで書き写す、といった流れの処理をします。
なので、中身が空の静的ファイルをサーバーに用意しておきましょう。
この例ではhoge.xmlという名前のファイルをアップロードします。
静的ファイルにWordPressで生成したファイルのソースコードを書き写すphp
fwrite()を使って、WordPressで書き出したファイルの内容を静的ファイルに書き込むためのphpファイルを作ります。ファイル名は何でもいいですがこの例ではmakexml.phpとしておきます。
makexml.php
<?php $url ="http://kotoriblog.com/xml";//Wordpressで生成した静的ファイルにしたいページのURL $buff = file_get_contents($url); $fname = "hoge.xml"; //書き出す静的ファイルのファイル名 $fhandle = fopen( $fname, "w"); fwrite( $fhandle, $buff); fclose( $fhandle ); echo "<a href='".$fname."'>作ったファイルを開く</a>"; ?>
上記内容のファイルを先ほどアップしたhoge.xmlと同じディレクトリにアップします。
作成したphpファイルにブラウザからアクセスする
先ほど作成したmakexml.phpにブラウザでアクセスします。
「作ったファイルを開く」と表示されれば完了です。
クリックしてファイルを確認してください。
まとめ
本当に付け焼刃ですが、無事にページの表示スピードも速くなり目的が達成されたのでオールオッケーです。
かなりコアなシチュエーションですが、機会があれば是非。