MTContents
コンテンツデータを一覧するためのブロックタグです。コンテンツタイプ個別アーカイブ以外のテンプレートでコンテンツデータの一覧を表示するときにこのタグを使います。モディファイアを指定することで条件に合致したコンテンツデータだけを抜き出したり、並び順を指定できます。
ブロック内では以下の特別な変数が利用できます。
- __first__
- ブロックの最初の1件目のとき、true がセットされています。
- __last__
- ブロックの最後の1件目のとき、true がセットされています。
- __odd__
- 奇数件目のとき、true がセットされています。
- __even__
- 偶数件目のとき、true がセットされています。
- __counter__
- 現在の処理件数がセットされています。値は1から開始します。
- 使い方
- 実行結果
<mt:Contents content_type="イベント・セミナー">
<mt:ContentsHeader><ul></mt:ContentsHeader>
<li><mt:ContentLabel></li>
<mt:ContentsFooter></ul></mt:ContentsFooter>
</mt:Contents>
<hr>
<mt:Contents content_type="講師" field:77d8f2f9b377be91986ef4b4336e77173925bdca="高山 裕司">
<mt:ContentsHeader><ul></mt:ContentsHeader>
<li><mt:ContentLabel></li>
<mt:ContentsFooter></ul></mt:ContentsFooter>
</mt:Contents>
<hr>
<mt:Contents content_type="講師" sort_by="field:講師名">
<mt:ContentsHeader><ul></mt:ContentsHeader>
<li><mt:ContentLabel></li>
<mt:ContentsFooter></ul></mt:ContentsFooter>
</mt:Contents>
モディファイア
- content_type
コンテンツタイプのユニークID、IDまたは名前を指定します。
- include_sites
コンテンツタイプが含まれているサイトのIDをカンマ区切りで指定します。site_id が同時に指定されている場合、site_id は無視されます。
詳しくは、マルチサイト機能が利用できるテンプレートタグとモディファイアを参照してください。Movable Type r.4502 以降のバージョンではこのモディファイアは使えません。site_id (blog_id) のみ利用可能です。
- exclude_sites
include_sites モディファイアで複数のサイトを対象としたとき、除外するサイトのIDをカンマ区切りで指定します。site_id が同時に指定されている場合、site_id は無視されます。
詳しくは、マルチサイト機能が利用できるテンプレートタグとモディファイアを参照してください。Movable Type r.4502 以降のバージョンではこのモディファイアは使えません。site_id (blog_id) のみ利用可能です。
- limit
sort_by、sort_order で指定された順序に並び替えを行ったのちに取得する件数を指定します。初期値は 10 です。
- offset
sort_by、sort_order で指定された順序に並び替えを行ったのちに指定された件数のコンテンツデータを除外します。limit モディファイアが指定されている場合、除外されたのちに limit で指定された件数を取得します。初期値は 0 です。
- author
特定のユーザーが作成したコンテンツデータを取得するときに指定します。指定するのは、サインインに使用されるアカウント名 (ユーザー名)です。
- sort_by
取得した結果の並び替えに使用するフィールドを指定します。
コンテンツタイプ型のコンテンツフィールドを指定することはできません。
- authored_on (公開日・初期値)
- author_id (作成ユーザー ID)
- identifier (出力ファイル名)
- created_on (作成日)
- modified_on (変更日時)
- field:コンテンツフィールドの名前、または、ユニーク ID、または、ID
- sort_order="ascend | descend"
並べる順序を指定します。ascend を指定すると昇順、descend は降順です。初期値は descend です。
- field:コンテンツフィールドの名前またはコンテンツフィールドのユニークID="foo"
指定されたコンテンツフィールドの値が foo であるコンテンツデータを抽出します。
日本語や半角空白が含まれるコンテンツフィールドの場合は、field: の後ろに指定することはできませんのでユニーク ID を代わりに指定します。
また、コンテンツフィールドがコンテツタイプの場合は、指定されているコンテンツタイプのフィールドを指定することはできません。(例:Jungfrau の利用を前提とした例となりますが、「セミナー」コンテンツタイプの「登壇講師」フィールドが、「講師」コンテンツタイプの場合、content_type に セミナー を指定している場合は、講師コンテンツタイプのコンテンツフィールドで値を絞り込むことができません)コンテンツフィールドがカテゴリセットである場合、カテゴリ名を値として指定することで、指定されたカテゴリセットのカテゴリのコンテンツデータを抽出します。
次のサンプルコードでは、catset1 カテゴリセットで Featured カテゴリが指定されたコンテンツデータだけが抽出されます。<mt:Contents field:catset1="Featured">
指定したカテゴリが、カテゴリの他の階層に存在する場合は、親カテゴリといっしょに指定します。
<mt:Contents field:catset1="News/Featured">
名前に半角スラッシュ / が含まれているカテゴリを指定する場合は [] で囲みます。
<mt:Contents field:catset1="[News/Featured]">
複数のカテゴリを組み合わせ、AND, OR, NOT などを使った複雑なフィルタリングもできます。次のサンプルは、Family または Pets カテゴリと、Featured カテゴリに含まれるコンテンツデータをフィルタリングします。
<mt:Contents field:catset1="(Family OR Pets) AND Featured">
また、次のサンプルは、Family カテゴリ以外のカテゴリに含まれるコンテンツデータ (どのカテゴリにも含まれないコンテンツデータも含む) にフィルタリングします。
<mt:Contents field:catset1="NOT Family">
タグ型のコンテンツフィールドでは、タグ名を指定します。また、カテゴリセットと同様に AND / OR / NOT が利用できます。
AND / OR / NOT が利用できるのはタグ型とカテゴリ型のコンテンツフィールドのみとなります。それ以外のコンテンツフィールドで使用した場合、値の一部として扱われます。
- id="N"
単一の特定コンテンツデータを抽出するときに指定します。id モディファイアでは、コンテンツデータの ID フィールドの値を指定します。
- unique_id="XX"
単一の特定コンテンツデータを抽出するときに指定します。unique_id モディファイアでは、コンテンツデータのユニーク ID の値を指定します。
- days="N"
date_field モディファイアで指定された日付が指定された日数以内のコンテンツデータを抽出します。
- date_field="foo"
'modified_on', 'authored_on', 'created_on' または 日付/時刻型のフィールドの ID, ユニークID, またはラベルを指定する。days モディファイアが指定されていないときは無効です。デフォルトは 'authored_on' です。
- unique="0 | 1"
unique モディファイアが付与された mt:Contents ブロックでは、同じテンプレート内でこれまでに出現したコンテンツデータを除いた結果が抽出されます。初期値は 0 です。
次のサンプルでは、ひとつめの mt:Contents ブロックで @featured シークレットタグが付けられた最新 3 件のコンテンツデータが抽出されます。ふたつめの mt:Contents ブロックでは、最新 7 件のコンテンツデータのうち、ひとつめの mt:Contents ブロックで出力されたコンテンツデータは含まれません。
<mt:Contents field:tag1="@featured" limit="3"> ... </mt:Contents> <mt:Contents limit="7" unique="1"> ... </mt:Contents>
- glue="foo"
複数のコンテンツデータを並べて表示するときの、区切り文字を設定します。