CMS Hub

HubSpotのcontent_by_id()関数で変数を渡せない場合

目次

    HubLには、IDからページのさまざまな情報を取得できるpage_by_id関数という便利な関数があります。

    page_by_id関数はウェブサイトページの情報しか取得出来ないのに対し、ウェブサイトページ・ランディングページ・ブログポストどれでも情報を取得できるcontent_by_idという関数が追加されました。ベストプラクティスはpage_by_idではなくcontent_by_id関数の使用になります。

    しかし当然ながら括弧内に数値型(number, BigDicimal辺り)しか許容しないので、渡している値が文字列とかだとエラーを吐きます。なので、

      
    1. page_by_id(hoge|round)

    と、roundフィルタでキャストしてあげる必要があります。

    roundフィルタで数値型にキャストすると、エラーが解消された様子
    roundフィルタで数値型にキャストすると、エラーが解消された様子

    記事更新時現在はもう解消されたようなのですが、昔カスタムモジュールのページセレクターを使うと、なぜかページIDが数値ではなく文字列で返って来ていたのですよね。なので、こんなひと手間が必要な時代があったのでした。

    他のキャスト(って言って良いのか微妙なものもありますが…)用フィルタも含めた一覧は以下の通りです。

    • 文字列→
      • 数値:round(ただし限りなく数値に近い文字列に限る)
      • リスト:split(区切り文字からリストを生成)
      • リスト:list(1文字ずつのリストになります)
    • 数値→
    • リスト→
      • 文字列:join
      • リスト:slice(リストの分割)
      • リスト:split(リストの分割)
      • リスト:union(リストの結合)
      • リスト:unique(重複がないよう抽出)

    執筆者:Admin

    関連記事