Movable Typeで特定の記事を優先して表示する

Movable Typeで記事一覧を表示する際、カスタムフィールドで用意したチェックボックスにチェックが入っている場合は優先表示したいということがたまにあるので、実装方法についてメモしておきます。

サンプルコード

まずは以下のようなカスタムフィールドを用意します。

  • 名前:優先表示
  • 種類:チェックボックス
  • ベースネーム:prioritycheckbox
  • テンプレートタグ:EntryPriorityCheckbox

次にテスト用の記事を作成します。

  • テストA(優先表示のチェック:なし)
  • テストB(優先表示のチェック:あり)
  • テストC(優先表示のチェック:なし)

まずは設定前の一覧表示を確認してみます。

<mt:Entries>
  <mt:EntryTitle>
  <mt:If tag="EntryPriorityCheckbox">
    優先表示: <mt:EntryPriorityCheckbox>
  </mt:If>
</mt:Entries>

再構築を行うと、公開日の新着順で以下のように表示されました。

テストC

テストB
優先表示: 1

テストA

次にチェックボックスにチェックを入れた記事を優先して表示してみます。
MTEntriesでsort_byを設定します。

<mt:Entries sort_by="field:prioritycheckbox">
  <mt:EntryTitle>
  <mt:If tag="EntryPriorityCheckbox">
  優先表示: <mt:EntryPriorityCheckbox>
  </mt:If>
</mt:Entries>

sort_byでカスタムフィールドを使用する場合、「field:カスタムフィールドのベースネーム名」の形で指定します。

再構築を行うと、チェックしたテストBが先頭に表示されて、以降は標準の新着順になりました。

テストB
優先表示: 1

テストC

テストA

参考サイト

このエントリーをはてなブックマークに追加

関連記事

コメントを残す

メールアドレスが公開されることはありません。
* が付いている欄は必須項目です

CAPTCHA


コメントが承認されるまで時間がかかります。

2025年3月
 1
2345678
9101112131415
16171819202122
23242526272829
3031