見出し画像

PowerCMS X のテンプレート変数が配列のときに重複する値を削除したい(ユニーク値)

以下の記事データがあったとします。

  • 記事A タグ「TEST」

  • 記事B タグ「TEST」

  • 記事C タグ「TEST」

  • 記事D タグ「DATA」

  • 記事E タグ「DATA」

ビューで以下のコードを書くと

<mt:entries glue="," nowrap=2>
<mt:entrytags glue=",">
<mt:tagname>
</mt:entrytags>
</mt:entries>

結果は

TEST,TEST,TEST,DATA,DATA

になってしまいます。これを

TEST,DATA

にするためには、以下のコードにします。

<mt:entries>
<mt:entrytags>
<mt:tagname setvar="tag_name_str"><mt:setvar name="tag_name_loop" value="$tag_name_str" function="push">
</mt:entrytags>
</mt:entries>
<mt:var name="tag_name_loop" array_unique setvar="tag_name_loop">

<mt:loop name="tag_name_loop" glue="," nowrap=2>
<mt:var name="__value__">
</mt:loop>

グローバルモデファイアの array_unique が重複している配列データを削除してくれます。

コードの中にある glue はループの中の値に区切り文字を指定できるもので、nowrap=2 はHTMLソースから改行を削除してくれます。

参考:グローバルモディファイア

別の方法もありますので、PowerCMS X で特定カラムのカウント数を表示する も見てください。

この記事が気に入ったらサポートをしてみませんか?