クライアントがメインページに表示するように選択したアセットを表示しようとしていて、まったく別のページに表示させようとしています。これはシンプルに聞こえるが、私は間違いを続けている(そして、私は学習している)
メインページのアセット:
{% 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 ?? [] %}
...