ベーステンプレートからif/elseif

私は単純なif/elseifを使ってベーステンプレートからコントロールしたい英雄のテキストボックスを持っています。

ホームページには「英雄」というフィールドがあります。
「小グループ」セクションのページでは、主人公が「グループ」と言うようにします。それ以外は、エントリータイトルにしたい。

それは簡単なようですが、これは機能していませんか?それはelseifを無視しています。

{% if entry == craft.entries.section('homepage') %}
    {{ entry.hero }}
{% elseif entry == craft.entries.section('smallgroups') %}
    Groups
{% else %}
    {{ entry.title }}
{% endif %}
ベストアンサー

あなたの問題はおそらく、 EntryModelエントリ >)を
ElementCriteriaModel
(エントリのクエリに使用される配列のようなオブジェクトに変換します。 craft.entries
の呼び出し)。

このようなものは、それを行う必要があります:

{% if entry.section.handle == 'homepage' %}
    {{ entry.hero }}
{% elseif entry.section.handle == 'smallgroups' %}
    Groups
{% else %}
    {{ entry.title }}
{% endif %}

あなたのセクションのハンドルが正しいと仮定すると、上記は機能するはずですが、これは 私の意見では、あなたのコードを読みやすくするために、
{%if%} の代わりに{%switch%}

{% switch entry.section.handle %}
    {% case 'homepage' %}
        {{ entry.hero }}
    {% case 'smallgroups' %}
        Groups
    {% default %}
        {{ entry.title }}
{% endswitch %}

返信を残す

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