予定日を過ぎたブログ記事を「最近のブログ記事」に表示しない
Movable Type 4 以降で、ブログ記事を指定した日程順に並べ、予定日を過ぎたブログ記事は「最近のブログ記事」に表示しないカスタマイズです。完全形ではありませんが、とりあえずアイデアということで紹介します。
1.カスタムフィールドの作成
ブログ記事用のカスタムフィールド「EntryScheduleDate(日付フィールド)」を作ります。このフィールドにスケジュールとなる任意の日付を設定します。
作成したカスタムフィールドのベースネームは、次項の都合で「cf_1」としておきます。
2.インデックステンプレートの作成
次のインデックステンプレートを作成します。このテンプレートはダイナミックパブリッシングを指定します。
<mt:Date format="%Y%m%d" setvar="current_date" />
<mt:Entries limit="5" sort_by="field:cf_1" sort_order="ascend">
<mt:EntriesHeader>
<div class="widget">
<h3 class="widget-header">今後のスケジュール</h3>
<div class="widget-content">
<ul>
</mt:EntriesHeader>
<mt:EntryScheduleDate format="%Y%m%d" setvar="entry_date" />
<mt:if name="entry_date" ge="$current_date">
<li><mt:EntryScheduleDate format="%b月%e日" strip="" />:<mt:EntryTitle /></li>
</mt:if>
<mt:EntriesFooter>
</ul>
</div>
</div>
</mt:EntriesFooter>
</mt:Entries>
まず、MTDate タグでこのインデックステンプレートの再構築日付(=アクセス日付:年月日)を取得し、変数current_dateに保存します。
次に、MTEntriesタグでブログ記事を処理します。「sort_by="field:cf_1"」と「sort_order="ascend"」を組み合わせて、設定したスケジュール順に表示します。
カスタムフィールドMTEntryScheduleDateタグの日付(年月日)を変数entry_dateに保存し、変数current_date以上、つまり同一日か未来の日付であれば一覧に表示します。
このサンプルでは年月日までの比較ですが、formatモディファイアの値を変更すれば時分秒まで比較可能です。
3.その他
以前に公開した「新着マーク表示」のように、PHPを利用してテンプレートタグを書き換えればスタティックパブリッシングでも動作すると思います。
Posted by yujiro このページの先頭に戻る
- ブログ記事ページでその記事以外のブログ記事一覧を表示する方法
- MTEntriesタグをテンプレートで複数使う時に記事を重複させない方法
- Movable Type5.2のTinyMCEを5.1のボタンに戻す方法
- Movable Typeで製品情報のテーブルを作る
- Movable Typeのブログ記事ページのファイル名に日別の通番を振る
- mt-csv2customfields v0.03
- 複数ブログのブログ記事を時間順に1件ずつ表示する
- Movable Type のブログ記事にフラグメント識別子(ページ内リンク)を設定する
- 特定のカテゴリーに属するブログ記事一覧を表示する(改)
- Movable Type 4 でカテゴリー別にブログ記事ページのデザインを切り替える方法(その2)
- Movable Type 4 でカテゴリー別にブログ記事ページのデザインを切り替える方法(その1)
- ブログ記事に同一カテゴリーのブログ記事リストを表示(MT4版・改)
- ブログ記事に同一カテゴリーのブログ記事リストを表示(MT4版)
- 概要と本文を切り替える(Movable Type 4・デフォルトテンプレート版)
- Movable Type で画像挿入時の form 要素について
トラックバックURL
コメントする
greeting