「WordPressで学ぶPHP(3)関数編」を発売しました。
本書は「WordPressで学ぶPHP(1)変数・制御構造編」「WordPressで学ぶPHP(2)データ構造(配列・オブジェクト)編」の続編にあたり、PHP組み込みの関数や、独自の関数を作る方法などを解説します。
Kindle本で、定価400円です。
mt-rebuild.plをウェブサイトの再構築にも対応させる
先日、mixiで「mt-rebuild.plで再構築がうまくいかない」という質問があがっていました。
mt-rebuild.plのソースを見たところ、ウェブサイトのことが考慮されておらず、それが原因でした。
そこで、mt-rebuild.plをウェブサイトの再構築に対応させる方法を紹介します。
1.mt-rebuld.plについて
mt-rebuild.plは、Timothy Appnel氏が作ったスクリプトで、Movable Typeのブログを様々な形で再構築する働きをします。
基本的な使い方は以下の通りです。
- mt-rebuild.plをMovable Typeのディレクトリに入れます。
- ターミナルを起動し、Movable Typeのディレクトリに移動します。
- 「perl ./mt-rebuild.pl (オプション)」と入力します。
オプションはいくつか指定することができます。
例えば、「perl ./mt-rebuildpl -all」とすると、すべてのブログを再構築することができます。
詳しい使い方は、ドキュメントのページをご参照ください。
また、mt-rebuild.plをcronで定期的に実行するように設定することもできます。
ブログ全体を最新の状態に保つために、mt-rebuild.plをcronで定期的に実行している方も、結構いるようです。
2.mt-rebuild.plをウェブサイトに対応させる
mt-rebuild.plは古いスクリプトです。
現在配布されているバージョンは0.2ですが、そのソースをみると「Copyright 2003」とあります。
その頃のMovable Typeには、ウェブサイトの機能はありませんでした。
そのため、「mt-rebuild.pl -all」として全体の再構築をしようとしても、ウェブサイトが再構築されないという現象が起こります。
「mt-rebuild.pl -all」でウェブサイトも再構築できるようにするには、mt-rebuid.plの67行目を以下のように書き換えます。
書き換え前
my $iter = MT::Blog->load_iter;
書き換え後
my $iter = MT::Blog->load_iter({ class => '*' });
3.他にも不十分な点がある
mt-rebuild.plには、ウェブサイトに対応していなかったこと以外にも、現在のMovable Typeで使うには不十分な点があります。
以下のようなことができません。
- あるウェブサイト(およびその配下のブログ)だけを再構築することができない。
- 「-archive_type=XXX」のオプションで、Movable Type 4以降で追加されたアーカイブ(カテゴリ年別など)を再構築することができない。
- 「-template=XXX」のオプションでインデックステンプレートを再構築する際に、再構築するテンプレートを識別子で指定することができない。
余裕ができれば、これらに対応する方法も紹介するかも知れません。