PowerCMS X で特定カラムのカウント数を表示する
記事モデルのオブジェクトデータがあったとして、
記事A カラム「sample」の値は「TEST」
記事B カラム「sample」の値は「TEST」
記事C カラム「sample」の値は「TEST」
記事D カラム「sample」の値は「DATA」
記事E カラム「sample」の値は「DATA」
フロントは以下の表示をさせたい場合の説明です。カッコ内はカウント数です。
TEST (3)
DATA (2)
MTタグは mt:countgroupby を利用します。以下がサンプルコードです。
コードの中の「sample」という箇所がカラム名です。ご自身のカラム名に書き換えてください。
例:count_group_by_sample の箇所はカラム名が age だったら、count_group_by_age にします。
※ アンダースコアが入ったカラム名(例 age_hoge)の場合はハイフンを省略しないでください。(例 count_group_by_age_hoge)
<mt:countgroupby model="entry" group="sample" count="sample" sort_by="count" sort_order="descend">
<mt:if name="count_group_by_sample"><mt:var name="count_group_by_sample" /> (<mt:var name="count_group_by__count_object" />)</mt:if>
</mt:countgroupby>
テンプレート・タグリファレンスは以下の記述になっています。
結果の件数が多い時は「 limit="10"」を付けるとよいですね。10件表示になります。
このタグはカラムの値が重複しないので、ユニークな値を取得する目的で利用しても良いかもしれないです。
以前、別の記事でグローバルモデファイアの array_unique を紹介しましたが、mt:countgroupby タグのほうが良さそうですね。