ブログ一覧をランダム表示に

ryuring 様
ありがとうございます!
望んだ通りの表示となりました。素晴らしいです。
なお、いただいたコードだけですと、ブログ1、2ともにランダム表示となるため、
過去ログを頼りに、特定ブログの判定を付け加え、

この様な形で利用させていただいています。

<?php
// 20210619 forum.basercms.net/t/topic/711/4
// app/Plugin/Rondom/Event/RandomModelEventListener.php
class RondomModelEventListener extends BcModelEventListener
{
	// ブログの記事取得直前で処理を横取りする宣言
	public $events = ['Blog.BlogPost.beforeFind'];

	public function blogBlogPostBeforeFind($event)
	{
		// 管理画面でない場合は終了
		if(BcUtil::isAdminSystem()) {
			return;
		}
		// ブログの index ページでない場合は終了
		if(!$this->isAction('Blog.Index')) {
			return;
		}
		// $event->data[0] に 検索条件などが入ってくる
		// メインの一覧の場合のみ type に customParams という
		// 文字列がセットされるためそうでない場合は終了
		if(empty($event->data[0]['type'])) {
			return;
		}
		// 特定ブログの判定(entityId は、ブログ設定画面の「実体ID」 forum.basercms.net/t/topic/366/4)
		$request = Router::getRequest();
		if($request->params['entityId'] === '2'){
		// 並び替え条件をランダムで上書き
		$event->data[0]['order'][0] = 'RAND()';
		}
	}
}

お力添えに、心から感謝しております。
どうもありがとうございました。

「いいね!」 1