Skip to content

フィルター

このリファレンス記事では、Liquidのフィルターの概要と、Brazeでサポートされているフィルターについて説明します。これらのフィルターの活用アイデアをお探しですか?Liquidユースケースライブラリーをご覧ください。

フィルターは、Liquidで数値、文字列、変数、オブジェクトの出力を変更する方法です。フィルターを使用して、文字列を小文字から大文字に変換したり、加算や除算などの数学的演算を実行したりするなど、静的または動的テキストを再フォーマットできます。

フィルターの構文

フィルターは出力タグ {{ }} 内に配置し、パイプ文字 | で示します。

1
{{"Big Sale" | upcase}}
BIG SALE

この例では、Big Sale が文字列で、upcase が適用されるフィルターです。

複数フィルターの構文

1つの出力に複数のフィルターを使用できます。フィルターは左から右の順に適用されます。

 {{ "Big Sale" | upcase | remove: "BIG" }}
SALE

配列フィルター

配列フィルターは、配列の出力を変更するために使用します。

フィルター 定義 サポート
join パラメーターとして渡された文字で配列の要素を結合します。結果は単一の文字列になります。 ✅ 対応
first 配列の最初の要素を返します。カスタム属性配列では、最も古く追加された値です。 ✅ 対応
last 配列の最後の要素を返します。カスタム属性配列では、最も最近追加された値です。 ✅ 対応
compact 配列から nil アイテムを削除します。 ✅ 対応
concat 配列を別の配列と結合します。 ✅ 対応
find_index 配列内の指定されたインデックス位置にあるアイテムを返します。配列の最初のアイテムは [0] で参照されます。 ⛔ 非対応
map 配列要素の属性をパラメーターとして受け取り、各配列要素の値から配列を作成します。 ✅ 対応
reverse 配列内のアイテムの順序を逆にします。 ✅ 対応
size 文字列のサイズ(文字数)または配列のサイズ(要素数)を返します。 ✅ 対応
slice 指定されたインデックスから始まる文字列の部分文字列または配列のサブセットを返します。 ✅ 対応
sort 配列内の要素の指定された属性で配列の要素をソートします。 ✅ 対応
sort_natural 大文字小文字を区別しないアルファベット順で配列内のアイテムをソートします。 ✅ 対応
uniq 配列内の要素の重複インスタンスを削除します。 ✅ 対応
where 特定のプロパティ値を持つアイテムのみを含むように配列をフィルタリングします。 ✅ 対応

カラーフィルター

カラーフィルターはBrazeではサポートされていません。

フォントフィルター

フォントフィルターはBrazeではサポートされていません。

数学フィルター

数学フィルターを使用すると、数学的演算を実行できます。1つの出力に複数のフィルターを使用する場合、左から右の順に適用されます。

フィルター 定義 サポート
abs 数値の絶対値を返します。 ✅ 対応
at_most 数値を最大値に制限します。 ✅ 対応
at_least 数値を最小値に制限します。 ✅ 対応
ceil 出力を最も近い整数に切り上げます。 ✅ 対応
divided_by 出力を数値で除算します。出力は最も近い整数に切り捨てられます。丸めを防ぐ方法については、以下のヒントを確認してください。 ✅ 対応
floor 出力を最も近い整数に切り捨てます。 ✅ 対応
minus 出力から数値を減算します。 ✅ 対応
plus 出力に数値を加算します。 ✅ 対応
round 出力を最も近い整数または指定された小数点以下の桁数に丸めます。 ✅ 対応
times 出力に数値を乗算します。 ✅ 対応
modulo 出力を数値で除算し、余りを返します。 ✅ 対応

カスタム属性を使った数学的演算

2つのカスタム属性間で数学的演算を実行することはできない点に注意してください。

{{custom_attribute.${current_rewards_balance} | plus: {{custom_attribute.${giftcard_balance}}}}}

この例は、1行のLiquidで複数のカスタム属性を参照できないため、動作しません。代わりに、数学関数を実行する前に、これらの値の少なくとも1つを変数に割り当てる必要があります。2つのカスタム属性を加算するには、2行のLiquidが必要です。

  1. カスタム属性を変数に割り当てる行
  2. 加算を実行する行

ユースケース: 現在の残高を計算する

ギフトカード残高とリワード残高を加算して、ユーザーの現在の残高を計算したいとします。

  1. assign タグを使用して、current_rewards_balance のカスタム属性を「balance」という用語に置き換えます。これにより、操作可能な balance という名前の変数が作成されます。
{% assign balance = {{custom_attribute.${current_rewards_balance}}} %}
  1. plus フィルターを使用して、各ユーザーのギフトカード残高とリワード残高({{balance}} オブジェクトで表される)を結合します。
{% assign balance = {{custom_attribute.${current_rewards_balance}}} %}
You have ${{custom_attribute.${giftcard_balance} | plus: {{balance}}}} to spend!
You have $35 to spend!

通貨フィルター

購入情報、口座残高、または金額に関する情報をユーザーに通知する場合は、通貨フィルターを使用する必要があります。通貨フィルターは、小数点が正しい位置にあること、および数値の一部が失われないこと(末尾の厄介な 0 など)を保証します。

フィルター 定義 サポート
money 小数点が正しい位置にあり、数値の末尾からゼロが削除されないように数値をフォーマットします。 ✅ 対応
money_with_currency 通貨記号付きで数値をフォーマットします。 ⛔ 非対応
money_without_currency 通貨記号なしで数値をフォーマットします。 ⛔ 非対応

Shopifyのmoneyフィルターと Brazeのmoneyフィルターの違い

カスタム属性(account_balance など)を入力する場合は、常に money フィルターを使用して、小数点を正しい位置に配置し、数値の末尾からゼロが削除されないようにする必要があります。

${{custom_attribute.${account_balance} | money}}
MONEYフィルターあり MONEYフィルターなし
moneyフィルターを適用した場合の表示 moneyフィルターを適用しない場合の表示
account_balance17.8 として入力された場合。 account_balance17.8 として入力された場合。

Brazeの money フィルターは、プリセット設定に従って自動的に小数点を適用しないため、Shopifyとは異なります。例えば、rewards_redeemed145 の値が含まれている以下のシナリオを見てみましょう。

${{event_properties.${rewards_redeemed} | money }}
$145.00

Shopifyの money フィルターによると、出力は $1.45 になるはずですが、Brazeでは $145.00 という出力になります。回避策として、divided_by フィルターを使用して数値を小数に変換してから、moneyフィルターを適用できます。

${{event_properties.${rewards_redeemed} | divided_by: 100.00 | money }}
$1.45

文字列フィルター

文字列フィルターは、文字列の出力と変数を操作するために使用します。文字列は英数字の組み合わせで、ストレート引用符で囲む必要があります。

フィルター 説明 サポート
append 文字列に文字を追加します。 ✅ 対応
camelize 文字列をキャメルケースに変換します。 ⛔ 非対応
capitalize 文字列の最初の単語を大文字にし、残りの文字を小文字にします。 ✅ 対応
downcase 文字列を小文字に変換します。 ✅ 対応
escape 文字列をエスケープします。 ✅ 対応
handleize 文字列をハンドル形式にフォーマットします。 ⛔ 非対応
md5 文字列をMD5ハッシュに変換します。詳細については、エンコーディングフィルターを参照してください。 ✅ 対応
sha1 文字列をSHA-1ハッシュに変換します。詳細については、エンコーディングフィルターを参照してください。 ✅ 対応
hmac_sha1_hex
(旧 hmac_sha_1)
ハッシュメッセージ認証コード(HMAC)を使用して文字列をSHA-1ハッシュに変換します。メッセージの秘密鍵をフィルターのパラメーターとして渡します。詳細については、エンコーディングフィルターを参照してください。 ✅ 対応
hmac_sha256 ハッシュメッセージ認証コード(HMAC)を使用して文字列をSHA-256ハッシュに変換します。メッセージの秘密鍵をフィルターのパラメーターとして渡します。 ✅ 対応
hmac_sha512 ハッシュメッセージ認証コード(HMAC)を使用して文字列をSHA-512ハッシュに変換します。メッセージの秘密鍵をフィルターのパラメーターとして渡します。 ✅ 対応
newline_to_br 文字列内の各改行の前に <br> 改行HTMLタグを挿入します。 ✅ 対応
pluralize 数値の値に基づいて、英語の文字列の単数形または複数形を出力します。 ⛔ 非対応
prepend 文字列の先頭に文字を追加します。 ✅ 対応
remove 文字列から部分文字列のすべての出現を削除します。 ✅ 対応
remove_first 文字列から部分文字列の最初の出現のみを削除します。 ✅ 対応
replace 文字列のすべての出現を部分文字列で置換します。 ✅ 対応
replace_first 文字列の最初の出現を部分文字列で置換します。 ✅ 対応
slice sliceフィルターは、指定されたインデックスから始まる部分文字列を返します。 ✅ 対応
split splitフィルターは、パラメーターとして部分文字列を受け取ります。この部分文字列は、文字列を配列に分割するための区切り文字として使用されます。 ✅ 対応
strip 文字列の左右からタブ、スペース、改行(すべての空白文字)を除去します。 ✅ 対応
lstrip 文字列の左側からタブ、スペース、改行(すべての空白文字)を除去します。 ⛔ 非対応
rstrip 文字列の右側からタブ、スペース、改行(すべての空白文字)を除去します。 ⛔ 非対応
strip_html 文字列からすべてのHTMLタグを除去します。 ✅ 対応
strip_newlines 文字列から改行を削除します。 ✅ 対応
truncate 最初のパラメーターとして渡された文字数まで文字列を切り詰めます。省略記号(…)が切り詰められた文字列に追加され、文字数に含まれます。 ✅ 対応
truncatewords 最初のパラメーターとして渡された単語数まで文字列を切り詰めます。省略記号(…)が切り詰められた文字列に追加されます。 ✅ 対応
upcase 文字列を大文字に変換します。 ✅ 対応

追加のフィルター

以下の汎用フィルターは、コンテンツのフォーマットや変換など、さまざまな目的に使用できます。

フィルター 説明 サポート
date タイムスタンプを別の日付形式に変換します。詳細については、日付フィルターを参照してください。 ✅ 対応
default 値が割り当てられていない変数にデフォルト値を設定します。文字列、配列、ハッシュで使用できます。 ✅ 対応
format_address ロケールに応じた順序で住所の要素を出力するように住所をフォーマットします。 ⛔ 非対応
highlight 送信された検索語に一致する場合、検索結果内の単語をhighlightクラスを持つHTML <strong> タグで囲みます。 ⛔ 非対応

エンコーディングフィルターやURLフィルターなど、その他のサポートされているフィルターについては、高度なフィルターページをご覧ください。

日付フィルター

date フィルターを使用して、タイムスタンプを別の日付形式に変換できます。date フィルターにパラメーターを渡して、タイムスタンプを再フォーマットできます。これらのパラメーターの例については、strfti.me を参照してください。

例えば、date_attribute の値がタイムスタンプ 2021-06-03 17:13:41 UTC であるとします。

{{custom_attribute.${date_attribute} | date: '%b %d'}}
03 June

strftime フォーマットオプションに加えて、Brazeは %s 日付フィルターを使用してタイムスタンプをUnix時間に変換することもサポートしています。例えば、date_attribute をUnix時間で取得するには次のようにします。

{{custom_attribute.${date_attribute} | date: '%s' }}
1433351621
New Stuff!