次の記事 |
前の記事![]() |
|
| ラボラトリ/プログラム | 前の記事![]() |
MT使ってる人以外にはどうでもいい記事ですな(苦笑
まずはMTを知らない人、及び前の記事を読んでない人の為に前置きをば。
MTってのは「Movable Type」の略で、このブログでも使用しているブログ構築ソフトウェアのことです。
で、ページのデザインとか、「カレンダーをココに入れてくれ」とか、そういったページ構築に、MT独自のタグが用意されている。
その中で、「記事を埋め込む」為に使用するタグとして<MTEntries>ってのが用意されていて、更にそれを拡張したモノで<MTEntriesWithSubCategories>ってのがある。
これは、「選択したカテゴリに含まれるサブカテゴリも含めて記事として出力する」という機能を持っているのだが、とあるカテゴリ単体ならばちゃんとサブカテゴリを見てくれるのに、複数の親カテゴリを指定してしまうと、<MTEntries>でカテゴリ指定したのとまったく同じ結果を吐き出してしまうというバグがある。
すなわち。
カテゴリ1
サブカテゴリ1-1
サブカテゴリ1-2
カテゴリ2
サブカテゴリ2-1
サブカテゴリ2-2
カテゴリ構成が上のようになっていたとして。
<MTEntriesWithSubCategories category="カテゴリ1 OR カテゴリ2">
~
</MTEntriesWithSubCategories>
と書いても、吐き出される記事の内容は
カテゴリ1
カテゴリ2
だけ、になってしまうわけだ。
そこで、サブカテゴリも含めて吐き出す機能を付加した「MTEntriesWithSubCategoriesEx」という、なにやらWinAPIっぽい名前のプラグインを作成してみた。
このサイトの例では、RSS(TINAMI用)にて使用し、「らくがき」コンテンツと「ラボラトリ」コンテンツの両方を吐き出す事に成功している。
仕事のほうで詰まってしまったので気分転換に作ってみたら、昨日大体できてたのもあって、ものの20分くらいでプラグイン化に成功したですよw
で、これ幸いと思い配布する事にしました。
【説明書】
【諸情報】
・製作者:KAZUBOH
・バージョン:ver.0.01
・URL:http://www.baghaus.jp/~kazuboh/
・動作環境:Movable Type ver.3.171-jaにて動作確認
【改善内容】
・MTEntriesWithSubCategoriesにおいて、categoryにてORを指定すると、指定したカテゴリの子カテゴリを見てくれない事に対応。
【使い方】
・MTのプラグインフォルダに、解凍して出来た「MTEntriesWithSubCategoriesEx.pl」を放り込む。
・MTEntries、もしくはMTEntriesWithSubCategoriesの代わりに、次のように書く。
<MTEntriesWithSubCategoriesEx category="カテゴリ1 OR カテゴリ2">
~
</MTEntriesWithSubCategoriesEx>
【問題点】
・あくまでRSS用に設けたものだから、カテゴリアーカイブなどで使用するとうまくいかない。
・category="" を書かないとうまく動かないかも。
・てか上記の問題で不満がなければ素直にMTEntriesとMTEntriesWithSubCategoriesを使ったほうが身のためです(・∀・)
【※追記 2007/10/20】
・3.17以降のバージョンで使用するとスクリプトエラーが発生するようです。
・少なくとも4.01では再構築でエラーが発生いたしました。更にこのバグ自体が改善されています。
次の記事 |
前の記事![]() |
|
| ラボラトリ/プログラム | 前の記事![]() |
投稿フォーム