1ページに複数のマトリックスブロック

私は1つのページに2つの異なるマトリックスブロックを表示するのが少し難しいです、そして、彼らは両方ともエントリーフィールドを持っています。私の最初のMatrixに
{%set entry を置くとすぐに、2番目のMatrixが消えます。

{% for block in entry.sideMenu %}
 {% if block.type == "sideMenuItem" %}
    {% set entry = block.sideLink.first() %}
      {% if entry %}
         {{ block.sideTitle }}
      {% endif %}
 {% endif %}
{% endfor %}
ベストアンサー

Craftがルーティングをどのように処理するかを見ると、次のようになります。

URIがエントリまたはカテゴリのURIと一致する場合、セクション/カテゴリグループのテンプレートがロードされ、一致した要素は、事前に設定されたエントリまたは
>カテゴリ変数を使用します。

だから、Craftはあなたのコードの1行目で参照している entry
変数を割り当てています。そして3行目で、この新しい値で最初の entry 変数を上書きする
{%set entry = block.sideLink.first()%} を行います。
2番目の行列は消えます。

おそらくあなたがしたいことはこれです:

{% for block in entry.sideMenu %}
  {% if block.type == "sideMenuItem" %}
    {% set sideLinkEntry = block.sideLink.first() %}
    {% if sideLinkEntry %}
       {{ block.sideTitle }}
    {% endif %}
  {% endif %}
{% endfor %}

元のエントリは変更されません。

返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です