カテゴリ/フォルダ/ブログ記事/ウェブページを並べ替えるプラグインβ版(その6)

「カテゴリ/フォルダ/ブログ記事/ウェブページを並べ替えるプラグイン」の第6回目として、並び順の番号を出力するテンプレートタグを解説します。
これらのタグを組み合わせることで、「章/節/項のような連番をブログ記事に降る」といったことができます。

1.MTEntryOrderNumberタグ

ブログ記事の並び順の番号を出力するタグです。
番号は、並び順の先頭が1、その次が2・・・というようになります。
MTSortedEntriesタグのブロックの中や、ブログ記事アーカイブテンプレートの中で使うことができます。
出力される値は以下の通りです。

条件 出力される値
ブログ記事がどのカテゴリにも属していない場合 どのカテゴリにも属さないブログ記事の中での並び順の番号
ブログ記事がカテゴリに属している場合 そのブログ記事の主カテゴリと同一のカテゴリに属するブログ記事の中での並び順の番号
ブログ記事がカテゴリに属していて、かつMTEntryCategoriesタグのブロックの中でタグを使う場合 ブログ記事が属する個々のカテゴリでの、同一カテゴリのブログ記事の中での並び順の番号
たとえば、ブログ記事がカテゴリAとBに属している場合、カテゴリAの中での並び順の番号と、カテゴリBの中での並び順の番号を出力することができます。

2.MTPageOrderNumberタグ

MTEntryOrderNumberタグのウェブページ版です。
MTSortedPagesタグのブロックの中や、ウェブページアーカイブテンプレートの中で使うことができます。
出力される値は以下の通りです。

条件 出力される値
ウェブページがどのフォルダにも属していない場合 どのフォルダにも属さないウェブページの中での並び順の番号
ウェブページがフォルダに属している場合 そのウェブページと同一のフォルダに属するウェブページの中での並び順の番号

3.MTCategoryOrderNumberタグ

同一の親カテゴリに属するカテゴリの中での、並び順の番号を出力します。
また、トップレベルのカテゴリでは、それらの中での並び順の番号を出力します。

たとえば、カテゴリの階層および並び順が以下のようになっているとします。

  • カテゴリA
    • カテゴリA1
    • カテゴリA2
    • カテゴリA3
  • カテゴリB
    • カテゴリB1
    • カテゴリB2
    • カテゴリB3

カテゴリA1/A2/A3は、いずれも同じ親カテゴリ(カテゴリA)に属します。
したがって、これらのカテゴリのMTCategoryOrderNumberタグの値は、それぞれ1/2/3になります。
同様に、カテゴリB1/B2/B3のMTCategoryOrderNumberタグの値も、それぞれ1/2/3になります。
また、カテゴリA/Bはトップレベルのカテゴリですが、これらのカテゴリのMTCategoryOrderNumberタグの値は、それぞれ1/2になります。

4.MTFolderOrderNumberタグ

MTCategoryOrderNumberタグのフォルダ版です。

5.例

以下の例は、ブログ内のすべてのブログ記事を、カテゴリ毎に並び順に出力するものです。
各カテゴリの名前の前には、並び順の番号が出力されます。
また、各ブログ記事のタイトルの前には、その記事が属するカテゴリの番号と、記事の番号が出力されます。
最終的な出力は、本の目次のような形になります。

<MTIgnore>カテゴリに属さないブログ記事を並び順のとおりに出力</MTIgnore>
<h1>カテゴリに属さないブログ記事</h1>
<ul>
<MTSortedEntries lastn="all">
  <li><$MTEntryOrderNumber$>.<a href="<$MTEntryPermalink$>"><$MTEntryTitle></a>(<$MTEntryDate format="%x %X">)</li>
</MTSortedEntries>
</ul>

<MTIgnore>各カテゴリのブログ記事を並び順のとおりに出力</MTIgnore>
<MTTopLevelCategories sort_method="SortCatFld::Sort">
<h1><MTParentCategories glue="-"><$MTCategoryOrderNumber$></MTParentCategories>.<MTParentCategories glue=":"><$MTCategoryLabel$></MTParentCategories></h1>
<ul>
<MTSortedEntries lastn="all">
  <li><MTParentCategories glue="-"><$MTCategoryOrderNumber$></MTParentCategories>-<$MTEntryOrderNumber>.<a href="<$MTEntryPermalink$>"><$MTEntryTitle></a>(<$MTEntryDate format="%x %X">)</li>
</MTSortedEntries>
</ul>
<MTSubCatsRecurse>
</MTTopLevelCategories>

6.未公開記事がある場合の注意

並び順の番号は、未公開のブログ記事/ウェブページにも割り当てられます。
そのため、公開記事と公開記事の間に未公開記事が並んでいる場合、記事一覧を記事の番号とともに出力すると、欠番があるように見えます。

たとえば、ブログ記事A/B/Cの3つの記事がこの順序で並んでいるとします。
すると、記事A/B/Cの番号はそれぞれ1/2/3になります。
また、記事Bが未公開になっているとします。
この状態で記事一覧を記事の番号とともに出力した場合、記事Bは未公開なので出力されず、「1.記事A」「3.記事C」のように、2番が欠番になります。