【问题标题】:Expression Engine SQL Query help - latest posts by author [duplicate]表达式引擎 SQL 查询帮助 - 作者的最新帖子 [重复]
【发布时间】:2011-08-15 16:27:56
【问题描述】:

可能重复:
expression engine sql query entries list by authors

我正在尝试为频道中的最新帖子创建一个简短的侧边栏列表,每个帖子都由一个单独的作者撰写。 有人可以帮忙合并这些我认为我(有点)单独工作的查询吗?

格式:

screen name
thumbnail
title

此查询代码创建一个列表,但使用 author_id 而不是屏幕名称 标题工作正常,但缩略图无法加载且路径写入不正确。

{exp:query sql="SELECT t.title, t.author_id FROM exp_channel_titles t 
ORDER BY author_id ASC LIMIT 4"}
{author_id}<br />
<a href="{path=portfolios/gallery/{username}}"><img src="{thumbnail}"></a><br>
<a href="{path=portfolios/gallery/{username}}">{title}</a><br />
{/exp:query} 

此查询代码正确创建路径和用户名,但标题只是显示为 {title} 缩略图未加载。

{exp:query sql="SELECT m.member_id, m.username, m.screen_name, m.avatar_filename FROM exp_members m 
WHERE m.group_id='5' "}
{screen_name}
<a href="{path=portfolios/gallery/{username}}"><img src="{thumbnail}"></a><br>
<a href="{path=portfolios/gallery/{username}}">{title}</a><br />
 {/exp:query} 

我认为我需要使用 JOIN,但我真的不是 SQL 查询专家。

thumbnail 是 exp_channel_fields 中的一个字段 - 知道我是如何将它输入到查询中的吗? 图像的文件名在 exp_channel_data 但它是这样的 -

{filedir_1}13.jpg 

我该如何摆脱

{filedir_1} 

位或创建路径?

或者我应该在那里使用 {exp:channel: 吗?

【问题讨论】:

    标签: sql expressionengine


    【解决方案1】:

    由于您需要解析自定义字段,因此这里最好的方法是首先找到来自不同作者的最新 4 个条目的 entry_ids,然后使用 entry_id 参数通过嵌入将它们传递给 channel:entries 标记.

    这应该可以工作(确保将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}"}
    

    然后您的 embeds/_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}
    

    【讨论】:

    • 感谢 derek - 但我收到消息“由于子模板嵌套不正确(递归调用了“embeds/latest_per_member”),您导致了模板循环。这是我的基本 EE 代码,它有效但不显示每个作者的帖子 1 - 如果有帮助,它会显示所有作者的帖子。 &lt;h3/&gt;Latest Entries&lt;h3&gt; {exp:channel:entries channel="portfolios" orderby="date" ASC limit="3" group_id="5" dynamic="no"} {entry_date format="%j %M %Y"}&lt;br /&gt; &lt;a href="{path=portfolios/gallery2/{username}}"&gt;{exp:ce_img:single src="{thumbnail}" height="112" width="150" crop="yes"} &lt;/a&gt;&lt;br /&gt; {/exp:channel:entries}
    • 我实际上在这里创建了一个新问题link,因为我认为它可能更容易解释
    • 马克 - 继续this thread
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-24
    • 1970-01-01
    • 1970-01-01
    • 2011-04-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多