在Expression Engine中显示最近的作者

时间:2013-02-25 19:17:55

标签: expressionengine author

我正在尝试整理代码,以便使用Expression Engine在我的博客中显示3位最近的作者。

这是我开始使用的代码:

<dl class="authors">
    {exp:channel:entries channel="{embed:my_channel}" limit="3" dynamic="no" site="{embed:my_site}"}
        <dt><span class="photo"><img src="{avatar_url}" width="{avatar_image_width}" height="{avatar_image_height}" alt="{author}'s Photo"></span></dt>
        <dd>{author}</dd>
    {/exp:channel:entries} 
</dl>

现在,我不太确定如何编码的事情是让最后3位作者发布条目。你看,最后3个条目可能是由同一个作者发布的,在这种情况下,我们必须通过更多条目来获得其他2个最新作者。这是我被困的地方。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

只需使用查询模块即可创建。我已经包含了如何组合查询以为作者提供自定义字段,如果您也设置了这些字段:

注意:我没有测试此代码的具体细节(使用您的嵌入代码等) - 尽管我能够测试查询。

如果您没有(或想要)自定义成员字段数据,则可以从查询中删除这些行。

<dl class="authors">
{exp:query sql="
SELECT DISTINCT
    exp_members.username,
    exp_members.member_id,
    exp_members.email,
    exp_members.screen_name as author,
    exp_members.avatar_filename,
    exp_members.avatar_width,
    exp_members.avatar_height,
    exp_member_data.m_field_id_1 as my_custom_member_field
FROM
    exp_channel_titles,
    exp_members,
    exp_member_data
WHERE
    exp_members.member_id = exp_channel_titles.author_id
    AND
    exp_channel_titles.channel_id = '{embed:my_channel}'
    AND
    exp_members.member_id = exp_member_data.member_id
    AND
    exp_channel_titles.site_id = '{embed:my_site}'
ORDER BY
    exp_channel_titles.entry_id DESC" limit='3'}
    <dt><span class="photo"><img src="{avatar_url}" width="{avatar_width}" height="{avatar_height}" alt="{author}'s Photo"></span></dt>
    <dd>{author}</dd>
{/exp:query}