2010.03.04
本日、デュアルディスプレイデビューしました。おはぎです。
Mさんありがとうございました!
さて、今回もMTネタで。
「年別アーカイブのときに月ごとに区切って表示する」方法です。
<MTEntries limit="auto"> <MTEntriesHeader> <!-- thismonthに最新のエントリーの投稿月をセットします --> <MTSetVarBlock name="thismonth"><$MTEntryDate format="%m"$></MTSetVarBlock> <!-- 最初の見出し --> <h2><$MTGetVar name="thismonth"$>月</h2> </MTEntriesHeader> <!-- entrymonthにエントリーの投稿月をセットします --> <MTSetVar Block name="entrymonth"><$MTEntryDate format="%m"$></MTSetVarBlock> <!-- thismonthとentrymonthの中身を比べます。同じであれば月見出しを出さず、記事一覧を出します。 --> <MTIf name="thismonth" eq="$entrymonth"> <$MTEntryTrackbackData$> <$MTInclude module="ブログ記事の概要"$> <MTElse> <!-- 月が変わった時の見出し --> <h2><MTGetVar name="entrymonth">月</h2> <$MTEntryTrackbackData$> <$MTInclude module="ブログ記事の概要"$> <!-- thismonthに新しい月をセットします --> <MTSetVarBlock name="thismonth"><$MTEntryDate format="%m"$></MTSetVarBlock></MTIf> </MTEntries>
こちらを応用して<$MTEntryDate$>の個所を、自分で設定した日付のカスタムフィールドに置き換えることもできます。
これには、sort_by属性(並び替えのキーを設定)でカスタムフィールドの値を設定することで実装できます。
前述のソースの1行目を以下のように変えます。
<MTEntries sort_by="field:scheduleday" sort_order="ascend">
「scheduleday」はカスタムフィールド作成時に付けた「ベースネーム」の値です(好きにつける)。
「sort_order」は新しい順(降順:descend)か古い順(昇順:ascend)かを決める属性です。
そして、<$MTEntryDate format=”%m”$>とある個所を
<$MTScheduleDay format="%m"$>
と変えます。
「MTScheduleDay」はカスタムフィールド作成時に付けた「テンプレートタグ」の値です(好きにつける)。
↓こんな画面。
これで、エントリー順が前後してもカスタムフィールドに入力した日付で並び変えることができます。
ですので、予定表などのページを作る際に便利ですね。
https://dis.ne.jp/blog/coding/862.html/trackback