MTOS4.15β5b&MT4.15β2リリース

Movable Type Open Source 4.15β5bと、Movable Type 4.15β2が公開されました。
Movable Type 4.15β2にはカスタムフィールド機能がありますが、カスタムフィールドの値によって、ブログ記事を並べ替えたりフィルタリングしたりする機能が追加されました。

Movable Type 4.15βのページ

1.並べ替えとフィルタリングの概要

カスタムフィールドによる並べ替えやフィルタリングは、変数と条件判断を組み合わせれば、これまでのバージョンでもできないことはありませんでした。
しかし、それだとテンプレートが複雑になります。
並べ替えとフィルタリングが標準機能として搭載されたことで、より使いやすくなりました。

具体的なテンプレートタグの書き方は、MOVABLETYPE.JPに記事が公開されていますので、そちらを参照してください。
また、小粋空間さんでも解説記事が公開されています。

2.並べ替えのパフォーマンスは大丈夫?

コードの動作を追った限りでは、並べ替えはパフォーマンスの点で、やや問題がありそうだと思われます。

現状のコードでは、ブログ内のすべての公開済みブログ記事をデータベースから読み込んだ後、Perlのsort演算子で並べ替える、という仕組みが取られています。
この仕組みだと、SQLでの並べ替えに比べて、速度やメモリ消費量の点で不利そうです。

MTでは、データベースに対する処理を行う際に、個々の処理からSQLを直接に発行せずに、MT内部でO/Rマッピングを行う仕組みがとられています。
一般的なデータの読み込みなら、このO/Rマッピングで問題なく対応できます。
しかし、やや変わった方法でデータを読み込もうとすると、「MTのO/Rマッピングの壁」にぶつかることがままあります。
「カスタムフィールドの値による並べ替え」も、この壁にぶつかっていて、前述したような処理手順が取られているものと思われます。

なお、フィルタリングはSQLで行われていました。