ページAからの資産フィールドを取得してページBに表示する

クライアントがメインページに表示するように選択したアセットを表示しようとしていて、まったく別のページに表示させようとしています。これはシンプルに聞こえるが、私は間違いを続けている(そして、私は学習している)

メインページのアセット:

{% for asset in entry.donateHeaderImage %}
   
{% endfor %}

Craftの別のページにそのアセットを表示する方法がわかりません。

ベストアンサー

まず、メインページのエントリを取得する必要があります。いくつかの方法があります( craft.entries のドキュメントを参照してください) 。
1つはセクションハンドルでフェッチすることです。メインページに mainPage
のセクションハンドルがあると仮定すると、これを行うことができます:

{% set mainPage = craft.entries.section('mainPage').first %}

そして、あなたは前と同じようにメインページの資産からそれを得ることができます:

{% for asset in mainPage.donateHeaderImage %}
  
{% endfor %}

安全であるためには、 craft.entries
が何も返さない可能性を常に処理する必要があります(mainPageセクションのハンドルが変更された可能性があります)。

だからそれをテストするか、

{% set mainPage = craft.entries.section('mainPage').first %}
{% if mainPage %}
  {% for asset in mainPage.donateHeaderImage %}
    
  {% endfor %}
{% endif %}

または、強力なヌル合体オペレーターを使用してください:

{% for asset in craft.entries.section('mainPage').first.donateHeaderImage ?? [] %}
  ...

返信を残す

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