本文へジャンプ

記事を任意の順番で表示したい!
Movable Type / PowerCMS

この記事は「MovableType Advent Calendar 2022」の19日目です。

今回は、案件時によく要望される仕様について。
「トップページのカルーセルバナーの順番を任意に並び替えたい」というもの。
※実際には表示するものを絞り込み選択の場合もあると思いますが今回は割愛します。

この仕様を実現する方法をいくつかご紹介します。

カスタムフィールドやコンテンツタイプで表示順の項目を作る(Movable Type 7・PowerCMS)

昔からある方法ですが、
カスタムフィールドやコンテンツタイプで、ソート用の数字を入力してもらい、その値を基準にしてソートする方法です。

出力例

<mt:Contents content_type="コンテンツタイプ名" sort_by="field:並び順"$>
{中略}
<mt:Contents >

〇メリット

  • 一覧画面でのソートして順番を確認できる。
  • 標準機能で実現できる。

×デメリット

  • 複数のデータの順番を変える場合、たくさんのデータを変更しないといけない。
  • 数字が重複してしまうことがある。
  • 桁数を合わせる必要がある。

コンテンツタイプを使用する(Movable Type 7)

投稿用のコンテンツタイプとは別に、並び替え用のコンテンツタイプを作成します。
並び替え用のほうで、コンテンツデータを指定するコンテンツタイプフィールドを作成します。

出力例

<mt:Contents content_type="並び替えコンテンツタイプ" limit="1">
 <mt:ContentField content_field="選択するコンテンツデータ">
  <$mt:ContentFieldValue$>
 </mt:ContentField>
</mt:Contents>

〇メリット

  • ドラッグ&ドロップで並び替えできる。
  • 標準機能で実現できる。

×デメリット

  • 投稿データと、選択する場所が別なのでわかりにくい。
  • 新規で投稿したものは自動で追加されないので、逐一選択する必要がある。

グループ機能を使用する(PowerCMS)

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を使用する(Movable Type 7・PowerCMS)

MTAppjQueryの「$.MTAppSortableBatchEdit()」を使えば、
記事・ウェブページ限定ですが、一覧画面からドラッグ&ドロップで並べ替えることが可能です。
参考:MTの記事一括編集で記事をカンタンに並べ替えるには

出力例

<mt:Entries sort_by="authored_on">
{中略}
<mt:Entries>

〇メリット

  • ドラッグ&ドロップで直感的に並び替えられる。
  • 公開日を自動で変更してくれるので、出力時のソートも簡単。

×デメリット

  • 並び替えると公開日が変更されてしまうので、公開日を表示などに使用している場合は注意が必要。

表示順を使用する(PowerCMS X)

PowerCMS Xでは、モデルに「表示順」という値を設定することができるので、
コレを使用すると公開日とは別に並び替えることができます。

出力例

<mt:Entries sort_by="order">
{中略}
<mt:Entries>

〇メリット

  • 一部のコンテンツの表示順を設定すると他のコンテンツの表示順も被らないように変更してくれるので便利。
  • 直接値を指定してもよし、ドラッグ&ドロップで変更も可能。

×デメリット

  • 特にない。が、任意で数字を入れた場合、ほかのコンテンツも選択し順番を保存しないと自動で番号を振りなおしてくれないので注意。
Recent Entries
MD EVENT REPORT
What's Hot?