MTEntryBasenameタグを利用し、エントリの出力ファイル名が任意の規則によりつけられている記事のフィルタリングを試みます。
MTEntriesブロックタグでは、いくつかのモディファイアが用意されて、フィルタリングできるようになっています(リンク先のモディファイアの項目参照)。
カテゴリによるフィルタ(category=)やタグ(tag=)、カスタムフィールド(field:customfieldbasename=)など目的にあわせてフィルタすることができるようになっています。
で、今回のテーマですが、ブログ記事作成の際に「出力ファイル名」で、ある一定の規則がある記事に対してのフィルタをおこなうというものです。
説明より先にリストアップするコードを書いてみましたので提示してみます。
<MTApplyModifier regex_replace="/\n+/g","\n"> <mt:Entries lastn="0"> <mt:if name="__first__"><ul></mt:if> <mt:setvarblock name="basename"><$mt:EntryBasename$></mt:setvarblock> <mt:if name="basename" like="mt_tips"><li><a href="<$MTEntryLink$>"><$mt:EntryTitle$></a></li> </mt:if> <mt:if name="__last__"></ul></mt:if> </mt:Entries> </MTApplyModifier>
ブロックタグのMTApplyModifierはApplyModifierプラグインによるもので、改行表示の調整をおこなっているだけですので、本題とはほとんど関係ありません。
細かい説明はいいでしょうかね。。mt:EntryBasenameを使うというくらいで特に珍しいことをしているわけでもないですし。
このような形でつくった、このブログで月に一回はある、「いらんことしい」の記事一覧ページが以下になります。mtevalグローバルモディファイアの適用でウェブページのテンプレートで作成しています。
現在は、DATA API を利用しておこなっております。
ちょっとしたお遊び程度の試みでしたが、短期の特集記事の目次テンプレートを作ろうとするとき、細かいカテゴリを増やしたくないとか、カスタムフィールド作るまでもないとか、タグも増やしたくないな、といったときの悪あがきにどうかなー、なんて。。