2

这是过滤大量频道条目的最有效方法吗?我想显示没有评论且不粘的条目。我正在使用这段代码。

{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}

干杯李

4

2 回答 2

3

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

另一种不使用条件变量,而是直接在你想要的结果之后的方法,只有你想要的结果,是使用查询模块

{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}

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

于 2012-11-10T23:29:24.513 回答
0

Sticky 是条目循环中的一个可用参数,因此您可以通过简单地添加sticky="no" 来过滤条目循环本身中的至少该元素,但不幸的是,注释不是可用参数,因此 Alex 的建议可能是最好的如果您的要求相当简单,则可以选择。但是,如果您需要访问大量自定义字段,则可能会有些棘手。因此,您必须根据循环中的需要来决定采用哪种方法。

于 2012-11-11T15:22:09.297 回答