ProcessWireで記事の並び順を自由自在に!
「sort=」活用術とカスタムフィールドの使い方を説明します。
ProcessWireで記事の並び順を自由自在に!
「sort=」活用術とカスタムフィールドの使い方を説明します。
フルスタックサイト構築
ニュース、ブログ、制作実績、お知らせ…。
こういったコンテンツは「どの順番で表示されるか」がとても重要です。
特に、ゲームやエンタメ業界では、
リリース日順に最新作を目立たせたい
イベント情報は開催日順に並べたい
制作実績をクライアント別に並べ替えたい
といったニーズがよくあります。
この「表示順のコントロール」をスマートに行えるのが、ProcessWireの sort=
です。
$pages->find()
などでページ一覧を取得する際、sort=
を使えば並び順を自由に制御できます。
例)テンプレートが blog-detail
の記事を取得
$blogItems = $pages->find("template=blog-detail, sort=-created");
このようにすると、作成順に記事が並びます。(公開順では無いです。)
指定方法 | 並び方 | 用途例 |
sort=title | タイトルの昇順(A→Z) | 商品名、キャラ名などの辞書的並び |
sort=-created | 作成日の新しい順 | ブログ、ニュース、アップデート情報 |
sort=sort | 手動でドラッグした順 | ギャラリー、ピックアップ欄 |
sort=modified | 更新日の古い順 | 編集履歴や履歴表示に |
sort=任意のフィールド名 | 独自フィールドで並び替え | 公開日順、リリース日順など |
「-
(ハイフン)」の意味は 「降順(新しい順)」で並べる という指示です。
sort=blog_date
→ 昇順(古い日付 → 新しい日付)
sort=-blog_date
→ 降順(新しい日付 → 古い日付)← よく使う!
ProcessWireは非常に柔軟なCMSですが、「記事の公開日」はデフォルトで存在しません。
そのため、「この日に公開する」という管理をしたい場合は、自分で Datetime フィールドを追加するのがベストです。
blog_date
というフィールドを作成管理画面 → フィールド → 新規作成「blog_date」
フィールドタイプは「Datetime」
対象テンプレート(例:blog-detail)に追加
記事ごとに公開日を入力
テンプレートでこう使う:
$items = $pages->find("template=blog-detail, blog_date!='', sort=-blog_date");
これで、公開日の新しい順に表示されます。
$games = $pages->find("template=game-detail, sort=-release_date");
→ 最新作が一番上に!
$events = $pages->find("template=event, sort=event_date");
→ 次に開催されるイベントが一番上に!
複数の基準で並び替えることもできます。
$items = $pages->find("template=blog-detail, sort=-blog_date, sort=title");
このようにすれば、同じ日付の記事はタイトル順で並びます。
「記事を出す」だけでは足りません。
「どの順で見せるか」を制御することで、サイト全体の導線や印象を大きく左右します。
ProcessWireなら、表示順を「自在に設計」できます。
デフォルトの created
で並べるもよし
手動順 (sort
) にするもよし
カスタムフィールド(blog_date
など)を使えば、公開戦略にぴったりハマる
CMSに「順番」の自由を求めるなら、ProcessWireはベストな選択肢のひとつです。