这是使用条件变量过滤通道条目的正确方法吗?

时间:2012-11-10 21:48:14

标签: expressionengine

这是过滤频道条目加载的最有效方法吗?我想显示没有注释且不粘的条目。我正在使用此代码。

{exp:channel:entries channel="{segment_3}" status="open" orderby="date" disable="categories|category_fields|member_data|pagination"}

  {if comment_total == "0" AND sticky == 'n'}
    ...
  {/if}

{/exp:channel:entries}

干杯 利

2 个答案:

答案 0 :(得分:3)

可能使用条件变量。但这可能会带来比你需要的更多的结果。另外,您将无法准确使用{count}(可能不是您的问题)。

另一种不使用条件变量的方法,只是在你想要的结果之后直接进行,而只是你想要的结果,就是使用Query Module

{exp:query sql=
    "SELECT title
    FROM exp_channels
    JOIN exp_channel_titles ON exp_channels.channel_id = exp_channel_titles.channel_id
    WHERE exp_channels.channel_name = '{segment_3}'
    AND exp_channel_titles.status = 'open'
    AND exp_channel_titles.sticky = 'n'
    AND exp_channel_titles.comment_total = 0"
}
    <li>{title}</li>
{/exp:query}

如果您需要访问一堆自定义字段,这可能会变得乏味,但这是获得所需结果的有效方式。

答案 1 :(得分:0)

Sticky是条目循环中的可用参数,因此您可以通过简单地添加sticky =“no”来过滤条目循环中的至少该元素,但遗憾的是,注释不是可用参数,因此Alex的建议可能如果您的要求非常简单,那么这是最好的选择。但是,如果您需要访问大量自定义字段,则可能有点棘手。因此,您必须根据循环中的需要决定采取何种方法。