Movable Type 5でのMTEntriesタグのcategory/catgoriesモディファイアの動作改善について
Movable Type 5で、MTEntriesタグのcategoryモディファイア(catgoriesモディファイア)の動作が、Movable Type 4から改善されています。
ここではサンプルデータを用いて、MT4とMT5の動作比較を行った結果を紹介します。
1.サンプルデータ
次のような6つのブログ記事と、5つのカテゴリを用意しました。
ブログ記事 | カテゴリ |
---|---|
モバイルサイトオープン | ニュース |
業務提携に関するお知らせ | ニュース |
ソリューションセミナー | お知らせ/ニュース |
Movable Type 入門セミナー | お知らせ/ニュース |
オフィシャルサイトオープン | イベント/ニュース |
シンポジウム2010 | イベント/ニュース |
最初の2つのブログ記事は「ニュース」カテゴリに属し、次の2つのブログ記事は「お知らせ」とう親カテゴリ配下にある「ニュース」カテゴリに属し、最後の2つのブログ記事は「イベント」とう親カテゴリ配下にある「ニュース」カテゴリに属しています。カテゴリーツリーで示すと、次の通りです。
ニュース
├ モバイルサイトオープン
└ 業務提携に関するお知らせ
お知らせ
└ ニュース
├ リューションセミナー
└ Movable Type 入門セミナー
イベント
└ ニュース
├ オフィシャルサイトオープン
└ シンポジウム2010
実験の観点は、それぞれの記事が属する「ニュース」というカテゴリをcategory(またはcategories)モディファイアで指定したときに、Movable Type 4とMovable Type 5でどのような出力結果になるか、という点です。
MT4のバージョンは4.27、MT5のバージョンは5.031です。categoriesモディファイアの動作はcategoryモディファイアと同じなので、以下の実験では省略しています。
2.categoryモディファイアに直属するカテゴリ名を指定
次のようなサブテンプレートを実行します。MTEntriesタグにcategoryモディファイアを与え、モディファイアの値に「ニュース」を設定します。
<mt:Entries category="ニュース">
<mt:EntriesHeader>
<ul>
</mt:EntriesHeader>
<li><mt:EntryTitle />[<mt:ParentCategories glue="/"><mt:CategoryLabel /></mt:ParentCategories>]</li>
<mt:EntriesFooter>
</ul>
</mt:EntriesFooter>
</mt:Entries>
Movable Type 4.27の出力結果
Movable Type 5.031の出力結果
MT4では「ニュース」というカテゴリ名のすべてのブログ記事が出力されるのに対し、MT5では、トップカテゴリにある「ニュース」に属するブログ記事のみが出力されるように改善されています。
3.categoryモディファイアに親カテゴリを含めて指定
2項のサブテンプレートのcategoryモディファイアの値に、親カテゴリを含めた「お知らせ/ニュース」を設定します。親カテゴリと子カテゴリは半角スラッシュ「/」で区切ります。
<mt:Entries category="お知らせ/ニュース">
<mt:EntriesHeader>
<ul>
</mt:EntriesHeader>
<li><mt:EntryTitle />[<mt:ParentCategories glue="/"><mt:CategoryLabel /></mt:ParentCategories>]</li>
<mt:EntriesFooter>
</ul>
</mt:EntriesFooter>
</mt:Entries>
Movable Type 4.27の出力結果
(出力なし)
Movable Type 5.031の出力結果
このように、MT5では期待通りの出力結果が得られます。
4.MT5で同一カテゴリに属するブログ記事一覧を出力する
ブログ記事アーカイブページに、同一カテゴリに属するブログ記事一覧を出力する場合、MT4までは「特定のカテゴリーに属するブログ記事一覧を表示する(改)」に示すように、かなり複雑なサブテンプレートを設定する必要がありましたが、MT5では次のように比較的シンプルなサブテンプレートで実現できます。
<mt:EntryID setvar="entryID" />
<mt:ParentCategories glue="/" setvar="entryCategories"><mt:CategoryLabel /></mt:ParentCategories>
<mt:Entries category="$entryCategories">
<mt:EntriesHeader>
<ul>
</mt:EntriesHeader>
<mt:if tag="EntryID" ne="$entryID">
<li><a href="<mt:EntryPermaLink />"><mt:EntryTitle /></a></li>
</mt:if>
<mt:EntriesFooter>
</ul>
</mt:EntriesFooter>
</mt:Entries>
- Movable Type6で記事のない親カテゴリのカテゴリページを出力する方法
- Movable Typeでブログ記事が属するカテゴリアーカイブのリンクをブログ記事ページに表示する
- Movable Typeで「カテゴリ+年別」の記事一覧を表示する方法
- Movable Typeで親カテゴリーアーカイブに表示した記事のメインカテゴリまでのパンくずリストを表示する
- Movable Typeのカテゴリのベースネームについて
- Movable Typeで複数ブログのブログ記事を同名のカテゴリ別に振り分ける方法
- Movable TypeのMTIfCategoryタグとMTEntryIfCategoryタグの違い
- Movable Typeのカテゴリリストで階層別に背景画像を変更する
- Movable Typeのカテゴリ・フォルダで特定の最上位階層を表示しない方法
- Movable Typeのカテゴリリストにダミーの親カテゴリを表示する
- MTEntriesタグのcategoryモディファイアに「AND」を含むカテゴリを指定する
- ブログ記事ページに自分が属するカテゴリのツリーと直属カテゴリの他のブログ記事一覧を表示する
- 親カテゴリーアーカイブにサブカテゴリーのブログ記事を表示する場合に特定のサブカテゴリーのブログ記事をフィルタリングする
- 特定のカテゴリのブログ記事を表示する
- 親カテゴリページにサブカテゴリページのリンクを表示する