テンプレートタグ リファレンス
Content Data Sort Order v1.0
Content Data Sort Order が提供するテンプレートタグの一覧と使い方です。
サンプルコードはコピーしてそのままご利用いただけます。
目次
mt:SortedEntries— 記事をカスタム順に出力mt:SortedPages— ウェブページをカスタム順に出力mt:SortedContents— コンテンツデータをカスタム順に出力mt:CdsoSortOrder— ページネーションプラグイン連携用- 共通属性一覧
- 固定記事(ピン留め)の使い方
- 実践サンプル集
<mt:SortedEntries>
記事をカスタム順(並べ替え画面で設定した順序)で出力します。並べ替え未設定の記事はMT標準のソート順(公開日の降順)で末尾に追加されます。
基本的な使い方
MTML
<ul>
<mt:SortedEntries>
<li>
<a href="<$mt:EntryPermalink$>"><$mt:EntryTitle$></a>
<span><$mt:EntryDate format="%Y/%m/%d"$></span>
</li>
</mt:SortedEntries>
</ul>
件数を制限して出力
MTML
<!-- 上位5件のみ -->
<mt:SortedEntries limit="5">
<h3><$mt:EntryTitle$></h3>
</mt:SortedEntries>
並べ替え済みの記事のみ出力
MTML
<!-- 並べ替え画面で順序を設定した記事だけを出力 -->
<mt:SortedEntries include_unordered="0">
<$mt:EntryTitle$>
</mt:SortedEntries>
出力対象: 公開済みの記事のみが出力されます。下書き・予約投稿・公開終了の記事は出力されません。
<mt:SortedPages>
ウェブページをカスタム順で出力します。フォルダ階層に関わらず、並べ替え画面で設定した順序で出力されます。
基本的な使い方
MTML
<ul>
<mt:SortedPages>
<li>
<a href="<$mt:PagePermalink$>"><$mt:PageTitle$></a>
<mt:PageFolder>
<span>フォルダ: <$mt:FolderLabel$></span>
</mt:PageFolder>
</li>
</mt:SortedPages>
</ul>
ナビゲーションメニューとして使う
MTML
<nav>
<ul>
<mt:SortedPages>
<li><a href="<$mt:PagePermalink$>"><$mt:PageTitle$></a></li>
</mt:SortedPages>
</ul>
</nav>
<mt:SortedContents>
コンテンツデータをカスタム順で出力します。content_type 属性でコンテンツタイプ名を指定する必要があります。
基本的な使い方
MTML
<!-- content_type にはコンテンツタイプ名を指定します -->
<ul>
<mt:SortedContents content_type="お知らせ">
<li>
<a href="<$mt:ContentPermalink$>"><$mt:ContentLabel$></a>
<span><$mt:ContentModifiedDate format="%Y/%m/%d"$></span>
</li>
</mt:SortedContents>
</ul>
件数制限 + オフセット
MTML
<!-- 4件目から3件取得(ページネーション用途など) -->
<mt:SortedContents content_type="お知らせ" limit="3" offset="3">
<$mt:ContentLabel$>
</mt:SortedContents>
コンテンツフィールドを出力
MTML
<mt:SortedContents content_type="お知らせ">
<article>
<h2><$mt:ContentLabel$></h2>
<mt:ContentFields>
<mt:ContentField>
<div class="field">
<h3><$mt:ContentFieldLabel$></h3>
<div><$mt:ContentFieldValue$></div>
</div>
</mt:ContentField>
</mt:ContentFields>
</article>
</mt:SortedContents>
content_type の指定: MT管理画面 → コンテンツタイプ → 一覧 で表示されるコンテンツタイプ名をそのまま指定してください。
<mt:CdsoSortOrder>
PageBute などのページネーションプラグインと併用するためのラッパータグです。内部の <mt:Entries> や <mt:Pages> にカスタムソート順を注入します。
記事のページネーション
MTML
<mt:CdsoSortOrder type="entry">
<mt:Entries limit="10" offset="0">
<h3><a href="<$mt:EntryPermalink$>"><$mt:EntryTitle$></a></h3>
</mt:Entries>
</mt:CdsoSortOrder>
ウェブページ
MTML
<mt:CdsoSortOrder type="page">
<mt:Pages>
<$mt:PageTitle$>
</mt:Pages>
</mt:CdsoSortOrder>
コンテンツデータ
MTML
<mt:CdsoSortOrder type="content_data" content_type="お知らせ">
<mt:Contents content_type="お知らせ">
<$mt:ContentLabel$>
</mt:Contents>
</mt:CdsoSortOrder>
| 属性 | 説明 | デフォルト |
|---|---|---|
type | オブジェクトタイプ(entry / page / content_data) | entry |
blog_id | ブログID | 自動取得 |
content_type | コンテンツタイプ名(type="content_data" 時に必須) | — |
共通属性一覧
mt:SortedEntries、mt:SortedPages、mt:SortedContents で共通して使用できる属性です。
| 属性 | 説明 | デフォルト |
|---|---|---|
blog_id | ブログID。省略時はコンテキストから自動取得 | 自動 |
content_type | コンテンツタイプ名(SortedContents のみ必須、例: "お知らせ") | — |
lastn / limit | 出力件数の上限 | 全件 |
offset | 先頭からスキップする件数 | 0 |
include_unordered | 並べ替え未設定のアイテムも出力するか(0 / 1) | 1(出力する) |
default_sort | カスタムソートを無効にしてMT標準順で出力(0 / 1) | 0(カスタム順) |
exclude_private_tag | 指定したプライベートタグを持つ記事/ウェブページを除外 | — |
exclude_tag_field | コンテンツデータのタグフィールド名(exclude_tag と併用) | — |
exclude_tag | 指定したタグを持つコンテンツデータを除外 | — |
glue | アイテム間に挿入する文字列 | — |
ループ変数
ループ内で以下の変数が使用できます。
| 変数 | 説明 |
|---|---|
__first__ | ループの最初のアイテムの場合 true |
__last__ | ループの最後のアイテムの場合 true |
__odd__ | 奇数番目のアイテムの場合 true |
__even__ | 偶数番目のアイテムの場合 true |
__counter__ | ループカウンター(1始まり) |
固定記事(ピン留め)の使い方
特定の記事を常にリストの先頭に固定表示したい場合(災害情報、重要なお知らせなど)、プライベートタグを使って並べ替え対象から除外できます。
手順
1. 固定したい記事のタグ欄に @pin を追加(@ で始まるタグはMTのプライベートタグです)
2. テンプレートで固定記事とソート済み記事を分けて出力
記事の場合
MTML
<!-- 固定記事(@pin タグ付き)を先に出力 -->
<mt:Entries tag="@pin" include_private="1">
<div class="pinned">
<span class="badge">重要</span>
<a href="<$mt:EntryPermalink$>"><$mt:EntryTitle$></a>
</div>
</mt:Entries>
<!-- 通常の記事(@pin を除外してカスタム順で出力) -->
<mt:SortedEntries exclude_private_tag="@pin">
<div>
<a href="<$mt:EntryPermalink$>"><$mt:EntryTitle$></a>
</div>
</mt:SortedEntries>
ウェブページの場合
MTML
<mt:Pages tag="@pin" include_private="1">
<div class="pinned"><$mt:PageTitle$></div>
</mt:Pages>
<mt:SortedPages exclude_private_tag="@pin">
<div><$mt:PageTitle$></div>
</mt:SortedPages>
コンテンツデータの場合
MTML
<!-- タグフィールド名が「タグ」の場合 -->
<mt:SortedContents content_type="お知らせ" exclude_tag_field="タグ" exclude_tag="@pin">
<$mt:ContentLabel$>
</mt:SortedContents>
タグ名は自由:
@pin 以外のプライベートタグ名でも使用できます(例: @important、@featured)。
実践サンプル集
よくあるユースケースのサンプルコードです。コピーしてそのままお使いいただけます。
お知らせ一覧(トップページ用)
MTML
<section class="news">
<h2>お知らせ</h2>
<ul>
<mt:SortedEntries limit="5">
<li>
<time><$mt:EntryDate format="%Y.%m.%d"$></time>
<a href="<$mt:EntryPermalink$>"><$mt:EntryTitle$></a>
</li>
</mt:SortedEntries>
</ul>
</section>
グローバルナビゲーション
MTML
<nav class="global-nav">
<ul>
<mt:SortedPages>
<li>
<a href="<$mt:PagePermalink$>"
<mt:If tag="PageID" eq="<$mt:PageID$>"> class="current"</mt:If>
><$mt:PageTitle$></a>
</li>
</mt:SortedPages>
</ul>
</nav>
コンテンツデータのカード一覧
MTML
<div class="card-grid">
<mt:SortedContents content_type="お知らせ">
<div class="card">
<h3><a href="<$mt:ContentPermalink$>"><$mt:ContentLabel$></a></h3>
<time><$mt:ContentModifiedDate format="%Y/%m/%d"$></time>
</div>
</mt:SortedContents>
</div>
区切り文字付きの出力
MTML
<!-- カンマ区切りでタイトルを出力 -->
<mt:SortedEntries glue=", ">
<$mt:EntryTitle$>
</mt:SortedEntries>
カスタムソートを一時的に無効化
MTML
<!-- MT標準のソート順(公開日の降順)で出力 -->
<mt:SortedEntries default_sort="1">
<$mt:EntryTitle$> (<$mt:EntryDate format="%Y/%m/%d"$>)
</mt:SortedEntries>
記事詳細ページで他の記事一覧を表示
テンプレートの種類について: SortedEntries / SortedPages / SortedContents はインデックステンプレート、アーカイブテンプレート、ウィジェットなど、すべてのテンプレートタイプで使用できます。記事詳細テンプレート内で使用した場合、現在表示中の記事も出力に含まれます。
MTML
<!-- 記事詳細テンプレート内で、カスタム順の記事一覧を表示 -->
<aside>
<h3>記事一覧</h3>
<ul>
<mt:SortedEntries limit="5">
<li><a href="<$mt:EntryPermalink$>"><$mt:EntryTitle$></a></li>
</mt:SortedEntries>
</ul>
</aside>