MTEntriesで、カスタムフィールドの複数値の情報を出力する
MTEntriesのカスタムフィールドモディファイアでは、値1つでしか設定できず、複数値の組み合わせ (AND, OR, NOT) をすることができません。
カテゴリであれば、AND, OR, NOTを使った複雑なフィルタリングが可能なのですが。。。
そこで、若干無理矢理感はありますが、下記のようにすることで、複数値の一覧を作ることができます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | <$MTSetVar name="news_lists" value=""$> <$MTSetVar name="counter" value="0"$> <MTEntries lastn="5" field:cf_basename="お知らせ"> <$MTEntryDate format="%Y%m%d" setvar="date"$> <MTSetVarBlock name="news_lists" key="$date"> <a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a> </MTSetVarBlock> </MTEntries> <MTEntries lastn="5" field:cf_basename="イベント"> <$MTEntryDate format="%Y%m%d" setvar="date"$> <MTSetVarBlock name="news_lists" key="$date"> <a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a> </MTSetVarBlock> </MTEntries> <MTLoop name="news_lists" sort_by="key reverse"> <MTIf name="counter" lt="5"> <$MTVar name="__value__"$> <MTSetvar name="counter" op="++"> </MTIf> </MTLoop> |
フィールドの各値で一旦取得した後、日付をキーにして並び替え、出力を行っています。
ページネーションとかが絡む場合は、使用できません。
コメントを残す