サポート

【解決】ページ一覧の子ページの並び順

leui (2017/10/15 21:23)

設置URL : http://goo.gl/

お世話になります。

早速ですが、ページ一覧の子ページの並び順の変更方法についてお尋ねします。
デフォルトで、親ページの並び順>子ページの並び順となっているようですが、親ページと関係なく子ページの更新が新しいものから古いものへと並べることは可能なのでしょうか。
新着ページ表示プラグインを使えばテンプレートファイルの編集のみで行ける気がするのですが、どうすればいいのか分かりません。

エントリー一覧(/entry)とページ一覧(/page)を新着順にしたうえで、『freoでサイト全体を管理する』のようにトップページを独立させて新着エントリーと新着ページのプラグインを配し、それぞれから「もっと見る」のリンクでそれぞれの一覧ページへ誘導したいです。

たびたびで申し訳ないですが、どうぞよろしくお願いします。

ccc (2017/10/20 21:03)

URL : http://cccabinet.jpn.org/

テンプレートの子ページ表示部分に
|@array_reverse
を追加すれば逆順になります。

こちらを参考にテンプレートを修正してみて下さい。
一括表示,ページ表示,新着系,過去ログの表示を逆順に(freo&WebDiaryProメモ)
http://silver.thyme.jp/freotips/view/26

ミツ (2017/10/20 21:34)

URL : http://32877.xii.jp

こんにちは。

[freo/libs/freo/internals/page/default.php]の360行目

$stmt = $freo->pdo->prepare('SELECT * FROM ' . FREO_DATABASE_PREFIX . 'pages WHERE approved = \'yes\' AND (status = \'publish\' OR (status = \'future\' AND datetime <= :now1)) AND (close IS NULL OR close >= :now2) ' . $condition . ' ORDER BY pid, sort, id LIMIT :start, :limit');

を、

		$stmt = $freo->pdo->prepare('SELECT * FROM ' . FREO_DATABASE_PREFIX . 'pages WHERE approved = \'yes\' AND (status = \'publish\' OR (status = \'future\' AND datetime <= :now1)) AND (close IS NULL OR close >= :now2) ' . $condition . ' ORDER BY modified DESC LIMIT :start, :limit');

にしてみてください。

「ORDER BY ~」の部分を「pid, sort, id」から「modified DESC」つまり更新日時の降順に変更しています。

leui (2017/10/25 20:58)

URL : http://goo.gl/

cccさま、ミツさま、返信ありがとうございます。
freoの別の場所をいじってトラブってしまい、なかなか試せませんでした。申し訳ありません。

ミツさまのおっしゃる書き換えで、質問したとおりの表示となりました。

できてみると欲が出て、特定のページを先頭に固定したくなり、考えているところです。

cccさまのおっしゃるのはメニュー関連のようで、今回の質問とは違ったのですが、実はそれも知りたいと思っておりました。利用させていただきます。

leui (2017/10/28 09:42)

URL : http://goo.gl/

記事の固定はやめて、目立たせたい記事はinformationでトップページに抜き出すことにいたしました。
質問の意図を書かなかったことに気づき、他の方が参考にしやすいよう、書き足しました。

まとめます。

ページの並び順を管理メニューページ管理で編集した並び順から変更したいとき

ページ一覧(/page)の並び順
/libs/freo/internals/page/default.php (freo 1.20.0未編集の状態で360行目)
ORDER BY に続く部分を編集

検索結果の並び順
ページ一覧の並び順に連動

親ページ個別表示の中の子ページ目次の並び順
/libs/freo/plugins/display.page_child.php (freo 1.20.0未編集の状態で46行目)
ORDER BY に続く部分を編集

(子ページの)ページ移動の並び順
/libs/freo/plugins/display.page_link.php (freo 1.20.0未編集の状態で51行目と98行目)
ORDER BY に続く部分を編集
※ 51行目と98行目の編集部分は同一にすること。
※ 現状、ページ移動の並び順は、ページ一覧から子ページにとんだ場合と子ページ目次から子ページにとんだ場合という条件分けがされていない。そのため、ページ一覧と子ページ目次との並び順が違う場合、どちらかにあわせるしかない。

改めて、freoを提供してくださるないとさん、サポートしてくださる皆さんに感謝いたします。

返信

  • この記事に返信します。
  • 返信の際は、設置URL以外の項目は入力必須です。
投稿フォーム
名前
設置URL
本文(本文の装飾について
編集キー(投稿した記事を編集する際に使用します。)
投稿キー(スパム対策に、投稿キー を半角で入力してください。)