我正在尝试创建一个来自频道的最新帖子的简短边栏列表,每个帖子都由一位单独的作者创建。 有人可以帮助合并这些查询我觉得我(有点)单独工作吗?
格式:
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:在那里吗?
答案 0 :(得分:0)
此处的最佳方法,因为您需要解析自定义字段,首先要查找来自不同作者的最新4个条目的entry_ids,然后使用{{channel:entries
标记通过嵌入将其传递到entry_id
标记1}}参数。
这应该有效(确保用适当的整数替换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}