通过灵动标签结合SQL可调用指定作者文章:已知作者ID时直接筛选userid;不知ID时关联会员表按用户名查询;在内容页可用$navinfor['userid']动态获取当前作者文章,确保checked=1以仅显示审核通过内容。

在使用帝国CMS建站时,如果需要调用指定作者发布的所有文章,可以通过灵动标签结合SQL查询来实现。系统默认的调用方式不直接支持作者筛选,因此需手动指定作者ID或作者名进行数据提取。
通过作者ID调用文章
若已知作者的会员ID(userid),可直接使用以下灵动标签代码:
[e:loop={"select * from [!db.pre!]ecms_news where userid=作者ID and checked=1 order by newstime desc",10,24,0}]
[$]bqr[title]]
[/e:loop]说明:将“作者ID”替换为实际的用户ID,10表示显示条数,24为操作类型(一般为24),checked=1确保只调用已审核的文章。
通过作者用户名调用文章
如果只知道作者名称而没有ID,可以先关联会员表进行查询:
[e:loop={"select a.* from [!db.pre!]ecms_news a,[!db.pre!]enewsmemberadd b where a.userid=b.userid and b.useran='作者用户名' and a.checked=1 order by a.newstime desc",10,24,0}]
[$]bqr[title]]
[/e:loop]注意:将‘作者用户名’换成真实用户名,并确认会员扩展表中字段名为username(部分版本可能略有不同)。
前台模板中的灵活应用
可在内容页或作者介绍页动态获取当前文章作者的文章列表:
- 使用$navinfor变量获取当前文章作者ID:$navinfor['userid']
- 结合PHP代码嵌入模板中,实现自动匹配当前作者的所有文章
示例:
[e:loop={"select * from [!db.pre!]ecms_news where userid='$userid' and checked=1 order by newstime desc",10,24,0}]
[$]bqr[title]]
[/e:loop]基本上就这些方法,根据实际需求选择按ID、用户名或动态变量调用即可。关键在于正确关联数据表并过滤有效信息,避免调出未审核或不属于该作者的内容。










