Skip to content

フィルター

この参考記事では、Liquidにおけるフィルターの概要と、Brazeでサポートされているフィルターを取り上げている。これらのフィルターの使い方のアイデアをお探しですか?リキッドのユースケースライブラリーをチェックしよう。

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

フィルターは出力タグ{{ }} 内に置かなければならず、パイプ文字| で示される。

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

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

1つの出力に複数のフィルターを使うことができる。左から右に適用される。

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

アレイ・フィルター

アレイ・フィルターは、アレイの出力を変更するために使われる。

フィルター 定義 サポート
参加する 配列の要素を、パラメータとして渡された文字で結合する。結果は単一の文字列である。 はい
第一 配列の最初の要素を返す。カスタム属性配列では、これは最も古く追加された値である。 はい
最後 配列の最後の要素を返す。カスタム属性配列では、これは最近追加された値である。 はい
コンパクト 配列からnil の項目を削除する。 はい
コンカット 配列を別の配列と結合する。 はい
インデックス 配列の指定されたインデックスの位置にある項目を返す。配列の最初の項目は[0] で参照される。 はい
地図 配列要素の属性をパラメーターとして受け取り、各配列要素の値から配列を作成する。 はい
リバース 配列の項目の順序を逆にする。 はい
サイズ 文字列のサイズ(文字数)または配列のサイズ(要素数)を返す。 はい
ソート 配列の要素を、その配列の要素の指定された属性でソートする。 はい
sort_natural 大文字小文字を区別せずにアルファベット順に配列の項目をソートする。 はい
ユニック 配列中の要素の重複を削除する。 はい
どこだ 特定のプロパティ値を持つ項目のみを含むように配列をフィルタリングする。 はい

カラーフィルター

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

フォントフィルター

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

数学フィルター

数学フィルターでは、数学的な演算を行うことができる。覚えておいてほしいのは、1つの出力に複数のフィルターを使った場合、それらは左から右に適用されるということだ。

フィルター 定義 サポート
腹筋 絶対値関数は、数値の絶対値を返す。 はい
at_most 数値を最大値に制限する。 はい
at_least 数値を最小値に制限する。 はい
天井 出力を最も近い整数に丸める。 はい
divided_by 出力を数値で割る。出力は最も近い整数に切り捨てられる。四捨五入を防ぐために、以下のヒントをチェックしよう。 はい
フロア 出力を最も近い整数に丸める。 はい
マイナス 出力から数値を引く。 はい
プラス 出力に数値を追加する。 はい
ラウンド 出力を最も近い整数または指定した小数点以下の桁数に丸める。 はい
出力に数値を掛ける。 はい
モジュロ 出力を数値で割り、余りを返す。 はい

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

2つのカスタム属性の間で数学的演算を実行することはできないことを覚えておいてほしい。

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

リキッドの1行で複数のカスタム属性を参照することはできないので、この例はうまくいかないだろう。その代わりに、数学関数が実行される前に、これらの値の少なくとも1つに変数を代入する必要がある。つのカスタム属性を一緒に追加するには、2行のリキッドが必要になる:

  1. カスタム属性を変数に割り当てる、
  2. ひとつは追加を行う。

例えば、ギフトカードの残高とリワードの残高を足して、ユーザーの現在の残高を計算したいとしよう。まず、assign タグを使って、current_rewards_balance のカスタム属性を “balance “という言葉に置き換える。つまり、balance という変数ができたことになる。

1
{% assign balance = {{custom_attribute.${current_rewards_balance}}} %}

次に、plus フィルタを使って、各ユーザーのギフトカード残高と、{{balance}} オブジェクトで示されるリワード残高を結合する。

1
2
{% assign balance = {{custom_attribute.${current_rewards_balance}}} %}
You have ${{custom_attribute.${giftcard_balance} | plus: {{balance}}}} to spend!
1
You have $35 to spend!

マネーフィルター

ユーザーの購入品や口座残高など、お金に関することを更新する場合は、マネーフィルターを使うべきだ。マネーフィルターは、小数が適切な位置にあり、更新の一部が失われないようにする(最後にある厄介な0 )。

フィルター 定義 サポート
マネー 小数が適切な位置にあり、数字の末尾からゼロが抜けていないことを確認するために、数字を整形する。 はい
money_with_currency 数字を通貨記号で表示する。 いいえ
money_without_currency 通貨記号を除いた数値をフォーマットする。 いいえ

ShopifyマネーフィルターとBrazeマネーフィルターの比較

カスタム属性(account_balance など)を入力する場合は、常にmoney フィルタを使用して、小数点が適切な位置にあり、数字の末尾からゼロが抜けていないことを確認する必要がある:

1
${{custom_attribute.${account_balance} | money}}
マネーフィルター付き マネーフィルターなし
マネーフィルター付き マネーフィルターなし
ここで、account_balance17.8 で入力される。 ここで、account_balance17.8 で入力される。

Brazeのmoney フィルタは、Shopifyとは異なり、プリセット設定に従って自動的に小数点を適用するわけではない。例えば、rewards_redeemed145 という値が含まれている場合を考えてみよう:

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

Shopifyのマネーフィルターによると、これは$1.45 の出力となるはずだが、Brazeでは$145.00 の出力となる。回避策として、divided_by フィルタを使って数値を10進数に変換してから、マネーフィルタを適用することができる:

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

文字列フィルター

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

フィルター 説明 サポート
アペンド 文字列に文字を追加する。 はい
キャメルケース 文字列をキャメルケースに変換する。 いいえ
資本を投下する 文字列の最初の単語を大文字にし、残りの文字を小文字にする。 はい
ダウンケース 文字列を小文字に変換する。 はい
エスケープ 文字列をエスケープする。 はい
ハンドル/ハンドルライズ 文字列をハンドルにフォーマットする。 いいえ
MD5 文字列をMD5ハッシュに変換する。詳しくは[エンコード・フィルター]3 ] を参照のこと。 はい
シャ1 文字列をSHA-1ハッシュに変換する。詳しくは[エンコード・フィルター]3 ] を参照のこと。 はい
hmac_sha1_hex
(previously hmac_sha_1)
ハッシュメッセージ認証コード(HMAC)を使って文字列をSHA-1ハッシュに変換する。メッセージの秘密鍵をフィルターにパラメータとして渡す。詳しくは[エンコード・フィルター]3 ] を参照のこと。 はい
hmac_sha256 ハッシュメッセージ認証コード(HMAC)を使用して、文字列をSHA-256ハッシュに変換する。メッセージの秘密鍵をフィルターにパラメータとして渡す。 はい
hmac_sha512 ハッシュメッセージ認証コード(HMAC)を使って文字列をSHA-512ハッシュに変換する。メッセージの秘密鍵をフィルターにパラメータとして渡す。 はい
newline_to_br 文字列の各改行の前に<br> 改行 HTML タグを挿入する。 はい
複数化する 数字の値に基づいて、英語の文字列の単数形または複数形を出力する。 いいえ
プリペンド 文字列の先頭に文字を追加する。 はい
取り除く 文字列から部分文字列をすべて削除する。 はい
remove_first 文字列から、最初に出現した部分文字列のみを削除する。 はい
置き換える 文字列のすべての出現回数を部分文字列で置き換える。 はい
replace_first 文字列の最初に現れる部分を部分文字列で置き換える。 はい
スライス スライスフィルターは、指定されたインデックスから始まる部分文字列を返す。 はい
スプリット スプリット・フィルターは部分文字列をパラメーターとして受け取る。部分文字列は、文字列を配列に分割する際の区切り文字として使われる。 はい
ストリップ 文字列の左右からタブ、スペース、改行(すべての空白)を取り除く。 はい
ストリップ 文字列の左側からタブ、スペース、改行(すべての空白)を取り除く。 いいえ
ストリップ 文字列の右側からタブ、スペース、改行(すべての空白)を取り除く。 いいえ
strip_html 文字列からすべてのHTMLタグを取り除く。 はい
strip_newlines 文字列から改行/改段を削除する。 はい
切り捨てる 文字列を、最初のパラメータとして渡された文字数まで切り詰める。省略記号(…)は切り捨てられた文字列に付加され、文字数に含まれる。 はい
トランケートワード 文字列を、最初のパラメータとして渡された語数まで切り詰める。切り捨てられた文字列には省略記号(…)が付加される。 はい
アップケース 文字列を大文字に変換する。 はい

追加フィルター

以下の一般的なフィルターは、コンテンツのフォーマットや変換など、さまざまな目的を果たす。

フィルター 説明 サポート
日付 タイムスタンプを別の日付フォーマットに変換する。詳しくは日付フィルタを参照のこと。 はい
デフォルト 値が割り当てられていない変数にデフォルト値を設定する。文字列、配列、ハッシュで使用できる。 はい
format_address アドレスをフォーマットし、そのロケールに従ってアドレスの要素を順番に表示する。 いいえ
ハイライト 送信された検索キーワードにマッチする場合、検索結果内の単語をHTMLの<strong> タグで囲む。 いいえ
time_zone 詳しくはタイムゾーンフィルターを参照のこと。 はい

エンコーディングやURLフィルターなど、サポートされているフィルターについては、アドバンス・フィルターのページで確認できる。

日付フィルター

date フィルタは、タイムスタンプを別の日付フォーマットに変換するのに使える。タイムスタンプを再フォーマットするために、date フィルタにパラメータを渡すことができる。これらのパラメータの例については、以下を参照のこと。 strfti.me.

例えば、date_attribute の値がタイムスタンプ2021-06-03 17:13:41 UTC だとしよう。

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

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

1
{{custom_attribute.${date_attribute} | date: '%s' }}
1
1433351621

タイムゾーンフィルター

Shopifyのドキュメントに記載されているフィルターに加えて、Brazeはtime_zone フィルターもサポートしている。

time_zone フィルタは、時刻、タイムゾーン、日付フォーマットを受け取り、そのタイムゾーンの時刻を指定された日付フォーマットで返す。例えば、{{custom_attribute.$date_attribute}}} の値が2021-08-04 9:00:00 UTC だとしよう:

1
{{custom_attribute.${date_attribute} | time_zone: 'America/Los_Angeles' | date: '%a %b %e %T' }}
1
Wed August 4 2:00:00

予約変数now を使って、現在の日付と時刻にアクセスして操作することもできる。

1
{{ 'now' | date: '%Y-%m-%d %H:%M:%S' }}
1
2021-08-04 18:13:13
「このページはどの程度役に立ちましたか?」
New Stuff!