Movable Type 5でのMTEntriesタグのcategory/catgoriesモディファイアの動作改善について

Movable Type 5でのMTEntriesタグのcategory/catgoriesモディファイアの動作改善について

Posted at November 2,2010 12:03 AM
Tag:[Category, Customize, MovableType]

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>


関連記事
zenback
人気エントリー
トラックバックURL


コメントする
greeting

*必須

*必須(非表示)


ご質問のコメントの回答については、内容あるいは多忙の場合、1週間以上かかる場合があります。また、すべてのご質問にはお答えできない可能性があります。予めご了承ください。

太字イタリックアンダーラインハイパーリンク引用
[サインインしない場合はここにCAPTCHAを表示します]

コメント投稿後にScript Errorや500エラーが表示された場合は、すぐに再送信せず、ブラウザの「戻る」ボタンで一旦エントリーのページに戻り(プレビュー画面で投稿した場合は、投稿内容をマウスコピーしてからエントリーのページに戻り)、ブラウザをリロードして投稿コメントが反映されていることを確認してください。

コメント欄に(X)HTMLタグやMTタグを記述される場合、「<」は「&lt;」、「>」は「&gt;」と入力してください。例えば「<$MTBlogURL$>」は「&lt;$MTBlogURL$&gt;」となります(全て半角文字)