concrete5 逆引きリファレンス

テキスト属性でページリストを抽出する

2021/05/08 20:41
テキスト属性の値でページリストをフィルタリングする

ページのカスタム属性でテキスト属性を追加し、任意の値でフィルタリングします。

ページとテーマ > 属性でテキスト属性を追加します。

スクリーンショット 2021-05-08 20.38.34.png

ページ属性で値を入れます。

スクリーンショット 2021-05-08 20.45.25.png

filterByAttributeで、この値のページを検索します。

$pageList = new PageList();
$pageList->filterByAttribute('country','イギリス'); //ハンドル名countryの値がイギリスのページを取得
$pages = $pageList->getResults();
foreach ($pages as $page) {
    echo $page->getCollectionName().'<br>';//ページタイトルを取得
}

テキストを完全一致でなく、部分一致にしたい場合はfilterByAttributeの部分を

$pageList->filterByAttribute('country','%イギ%', 'LIKE'); 
//ハンドル名countryの値がイギを含むページを取得

%キーワード%,LIKEにすることで、部分一致にできます。
これはSQLと同じで、例えば頭文字に合致した部分を検索したい場合

$pageList->filterByAttribute('country','イ%', 'LIKE'); 
//ハンドル名countryの頭文字がイを含むページを取得

にするとハンドル名がcountryの値の頭文字がイのページが抽出できます。

イギリス
イタリア
も該当します。