サポート

ページ一覧をランダムの並び順で表示したい

仲村陸 (2016/08/10 22:49)

設置URL : http://noka.natukusa.net/

いつもお世話になっております。
長年悩んでいたのですが、どうしても解決策が見つからなかったのでご助力いただければと思います。

標準のページ機能と一覧機能を使ってギャラリーページを作成しているのですが、このページ一覧をランダムに並べたいのです。
できれば特定ディレクトリ以下のページ群から、指定数だけランダムにピックアップした一覧を作成したいと考えています。

http//hoge.com/index.php/page/AAA/BBB1
http//hoge.com/index.php/page/AAA/BBB2
http//hoge.com/index.php/page/AAA/BBB3



http//hoge.com/index.php/page/AAA/BBB100

こういったURLのページ群が100枚あったとして、
ランダムで「5個」だけ抜き出したいと設定したら、

http//hoge.com/index.php/page/AAA/BBB33
http//hoge.com/index.php/page/AAA/BBB12
http//hoge.com/index.php/page/AAA/BBB59
http//hoge.com/index.php/page/AAA/BBB3
http//hoge.com/index.php/page/AAA/BBB99

というURLに向けたリンクが生成され、トップページやサイドバーに出力される形を希望しています。
できれば各ページに設定されたサムネイルや更新日時・オプション機能で設定したテキストなども出力できるとなお良いです。

ページイメージ表示プラグイン、新着ページ表示プラグイン、子ページ表示プラグインなどを改造したり、テンプレートの記述を工夫して意図した表示ができないだろうかと調整していましたが、なかなかうまくいきません。

どうぞよろしくお願いいたします。

メモ主 (2016/08/15 05:58)

URL : http://silver.thyme.jp/freotips/

ページ一括表示プラグインを改造することで実現出来るかと思います。
libs/freo/plugins/display.page_all.php
//ページ取得
とある次の行の末尾ORDER BY ~略');を
MySQLの場合
ORDER BY RAND() limit 5');
SQLiteの場合
ORDER BY RANDOM() limit 5');
に変更

ページ一括表示プラグインの情報の取り出し方はミツさんのサイト
http://32877.xii.jp/)に解説があります。※オプションの取得方法も独立した記事で解説されています。

ディレクトリの指定は以下の方法で可能です。
http://freo.jp/plugin/page_all.html#function_pid
「特定のページ以下のタイトルのみを表示する」

注意点1:ページ一括表示プラグインを他で使用していた場合、そちらも影響を受けるので複製してリネームする必要があります。
注意点2:知っている方法を挙げましたが、RAND()/RANDOMは負荷が高くレコード数が多いと重くなるそうです。もし重すぎたら回避法(「rand 重い」等で見つかります)を試みてください。

メモ主 (2016/08/15 06:29)

URL : http://silver.thyme.jp/freotips/

補足です。ページ一括表示プラグインはそのまま使ってもページ以外では表示出来ないのを忘れていました。以下を参考にしてください。
http://freo.jp/document/customize/plugin_load.html
プラグインを色々なページに表示する

補足2です。プラグインの複製の方法もミツさんのサイトに情報があります。引用ばかりですみません。

仲村 (2016/08/15 21:38)

>メモ主さん
ありがとうございます!
ページ一括プラグインは一覧を作るのに使っていましたが、件数指定もできるのですね。
私生活の影響ですぐには触れないのですが試してみます。

仲村 (2016/08/27 14:33)

URL : http://anodoko.net/freo-gallery/

>メモ主さん
ページ一括プラグインを改造して
新たにランダム用プラグインとして新規作成し、
無事ランダム表示ができるようになりました!

ご助言まことにありがとうございます。

メモ主 (2016/08/27 18:35)

URL : http://silver.thyme.jp/freotips/

>仲村さん
お役に立てて幸いです!
どういう使い方をされるのか知りたかったので大変参考になりました。

返信

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