【问题标题】:Expression Engine - How do I display content based on custom field content?表达式引擎 - 如何根据自定义字段内容显示内容?
【发布时间】:2012-08-02 19:35:04
【问题描述】:

我正在开发一个表达式引擎网站,我正在尝试从两个不同的渠道获取内容,以便根据条件显示在同一部分中。

主页有一个链接到各种内容的滑块。我为此创建了一个包含四个字段的频道。文章部分有独立的内容,但有时需要在主页的滑块中突出显示。

为了满足这一需求,我添加了一个带有 NO/YES 选项的“在滑块中显示”字段,后跟包含与滑块内容类似但具有唯一名称的内容的字段。

挑战在于:如何编写条件以仅显示“在滑块中显示”字段设置为“是”的条目。以下代码有一个缺陷:它仍然显示“在滑块中显示”设置为 NO 的条目中的部分内容,因为它符合 if:else 选项的条件。

代码如下:

<div id="slider">
{exp:channel:entries channel="slider|garden_advice" disable="categories|category_fields|member_data|pagination"}
{if display_in_slider == "YES"}
<div class="slider-content">    
<div class="slider-image">
<img src="{slider_photo_ga}" alt="{title}" >
</div>
<h3>{title}</h3>
<span class="sub-title">{sub_title_ga}</span>
<p>{slider_text_ga}</p>
<div class="link-box">
<a href="{site_url}garden-advice/article/{url_title}">{link_text_ga}</a>
</div>
</div><!-- end .slider-content -->
{if:else}
<div class="slider-content">    
<div class="slider-image">
<img src="{slider_photo}" alt="{title}" >
</div>
<h3>{title}</h3>
<span class="sub-title">{sub_title}</span>
<p>{slider_text}</p>

{if entry_id != 5014}
<div class="link-box">
{link_text}
</div>
{if:else}
{link_text}
{/if}
</div><!-- end .slider-content -->
{/if}
{/exp:channel:entries}
</div><!-- end .slider --> 

我的问题是:如何修改条件,以便在第一个 if 语句中只考虑 garden_advice 通道,而在第二个语句中只考虑滑块通道?

谢谢!

【问题讨论】:

    标签: expressionengine


    【解决方案1】:

    只需在条件中包含channel_short_name

    {if channel_short_name == "garden_advice" && display_in_slider == "YES"}
    

    等等

    您也可以尝试将search:display_in_slider="YES" 添加到您的频道条目标签...我不确定这将如何与channel 参数中的两个频道一起使用(EE 可能会看到该字段不在“滑块" channel 并忽略该参数,或者它可能会完全忽略该通道的所有条目),但值得一试。

    【讨论】:

    • 嗨,Derek,我一直很感激您的有用建议。我尝试了上述方法,稍加调整就可以让它工作。实际上,我最终将两个条件句分成了两个。正是 channel_short_name 使一切变得不同。向你致敬。
    • 很高兴您对它进行了排序,很乐意提供帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-14
    • 1970-01-01
    • 2014-07-11
    • 2011-05-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多