一尘不染

表达式引擎sql查询条目作者列表

sql

如何从频道中订购最新的3个条目,而每个条目都来自不同的作者?(因此,它们最终不会成为同一作者的3个最新条目)-我想我需要为此使用SQL查询吗?

{exp:channel:entries orderby="screen_name|date" channel="portfolios" limit="3" group_id="5" dynamic="no"}
<img src=" {thumbnail}" alt="{title}"/><br />
{title}<br />
{/exp:channel:entries}

提前致谢!


阅读 132

收藏
2021-03-10

共1个答案

一尘不染

马克-这是我在另一个重复问题上发布的答案的转发


由于需要解析自定义字段,因此此处的最佳方法是,首先查找来自不同作者的最新4个条目的entry_id,然后channel:entries使用entry_id参数通过嵌入将其传递给标签。

这应该起作用(确保将替换channel_id为适当的整数)。使用以下代码替换您当前的全部代码块:

{embed="embeds/_latest_per_member" entry_ids="{exp:query sql="SELECT entry_id, author_id FROM exp_channel_titles WHERE entry_date IN( SELECT MAX(entry_date) FROM exp_channel_titles  WHERE status != 'closed' AND channel_id = 1 GROUP BY author_id ) ORDER BY entry_date DESC LIMIT 4" backspace="1"}{entry_id}|{/exp:query}"}

然后,您的 embed / _latest_per_member 模板可以如下所示:

{exp:channel:entries channel="channel_name" entry_id="{embed:entry_ids}"}
    {author_id}<br />
    <a href="{path=portfolios/gallery/{username}}"><img src="{thumbnail}"></a><br>
    <a href="{path=portfolios/gallery/{username}}">{title}</a><br />
{/exp:channel:entries}

您曾提到,这个代码给你一个递归误差-这意味着你已经把另一个调用嵌入 嵌入。不要那样做

2021-03-10