この記事は「MovableType Advent Calendar 2022」の19日目です。
今回は、案件時によく要望される仕様について。
「トップページのカルーセルバナーの順番を任意に並び替えたい」というもの。
※実際には表示するものを絞り込み選択の場合もあると思いますが今回は割愛します。
この仕様を実現する方法をいくつかご紹介します。
昔からある方法ですが、
カスタムフィールドやコンテンツタイプで、ソート用の数字を入力してもらい、その値を基準にしてソートする方法です。
<mt:Contents content_type="コンテンツタイプ名" sort_by="field:並び順"$> {中略} <mt:Contents >
投稿用のコンテンツタイプとは別に、並び替え用のコンテンツタイプを作成します。
並び替え用のほうで、コンテンツデータを指定するコンテンツタイプフィールドを作成します。
<mt:Contents content_type="並び替えコンテンツタイプ" limit="1"> <mt:ContentField content_field="選択するコンテンツデータ"> <$mt:ContentFieldValue$> </mt:ContentField> </mt:Contents>
PowerCMSのグループ機能を使えば、D&Dで直感的に並び替えが可能です。
対象となるオブジェクトは、
記事、ウェブページ、カテゴリ、フォルダ、アイテム、テンプレート、ウィジェット、バナー、リンク、カスタムオブジェクト、ウェブサイト、ブログです。
また、混在も可能です。
<mt:GroupEntries group="選択するデータ"> <mt:GroupEntriesHeader><ul></mt:GroupEntriesHeader> <li><a href="<$mt:EntryPermalink$>"><$mt:EntryTitle$></a></li> <mt:GroupEntriesFooter></ul><mt:GroupEntriesFooter> </mt:GroupEntries>
MTAppjQueryの「$.MTAppSortableBatchEdit()」を使えば、
記事・ウェブページ限定ですが、一覧画面からドラッグ&ドロップで並べ替えることが可能です。
→ 参考:MTの記事一括編集で記事をカンタンに並べ替えるには
<mt:Entries sort_by="authored_on"> {中略} <mt:Entries>
PowerCMS Xでは、モデルに「表示順」という値を設定することができるので、
コレを使用すると公開日とは別に並び替えることができます。
<mt:Entries sort_by="order"> {中略} <mt:Entries>