concrete5 逆引きリファレンス

日付でページリストを抽出する

2021/05/07 17:59
作成日、更新日、または日付属性を日付でフィルタリングする

日付によってページを抽出する

作成日によってページをフィルタリングする

$pageList = new PageList();
$date = '2021-04-25 17:30:00'; //検索日 date('Y-m-d H:i:s')
$pageList->filterByDateAdded($date,">="); //指定した日付以降に作成されたページを検索
$pages = $pageList->getResults();
foreach ($pages as $page) {
    echo $page->getCollectionName().'<br>';//ページタイトルを取得
}

日付を以前にしたい場合は、">="を"<="に変更します。

イベントやニュースの検索などで、この日付からある日付の間を取得したい場合はフィルタを2回定義できます。

$pageList = new PageList();
$startdate = '2021-04-25 00:00:00';
$enddate = '2021-04-27 00:00:00';
$pageList->filterByDateAdded($startdate,">="); //$startdate以降に作成されたページを検索
$pageList->filterByDateAdded($enddate,"<="); //$enddate以前に作成されたページを検索
$pages = $pageList->getResults();
foreach ($pages as $page) {
    echo $page->getCollectionName().'<br>';//ページタイトルを取得
}

ページの作成日ではなく、公開日で検索するには

$pageList->filterByDateAdded($date,">=");

の部分を

$pageList->filterByPublicDate($date,">=");

にすることで、対象を変更できます。

ページの最終更新日で検索する場合は

$pageList->filterByDateLastModified($date,">=");

で、フィルタリングできます。

ページ属性に日付/時刻型を追加してフィルタリングも可能です。

スクリーンショット 2021-05-07 19.11.06.png

仮にイベント日という日付/時刻型の属性を追加します。

スクリーンショット 2021-05-07 19.11.27.png

ページで日付の属性値を設定します。

スクリーンショット 2021-05-07 19.16.06.png

$pageList->filterByAttribute('event_date',$date,">=");

ハンドル名「event_date」の日付でフィルタリングするには
filterByAttribute('event_date',日付値,比較演算子);

で取得できます。