帝国cms如何调用当前文章作者的其他文章_帝国cms作者相关文章调用方法

在帝国CMS中,调用当前文章作者的其他文章是一个常见的需求,尤其适用于个人专栏、作者推荐等场景。通过简单的SQL查询和灵动标签,就可以实现“作者相关文章”的调用。

获取当前文章作者ID

在内容页模板中,首先要获取当前文章的作者ID(userid)或投稿者ID(ismember字段相关的值)。通常使用以下变量:

[!–writer–]:文章作者名(可能不唯一)[!–userid–]:发布该文章的会员ID(关键字段)

注意:如果文章是后台管理员添加的,userid 可能为空或为0,这种情况下无法准确匹配作者的其他文章。

使用灵动标签调用作者的其他文章

在内容页模板中使用灵动标签([e:loop]),结合当前文章的userid进行筛选,排除当前文章本身,示例如下:

[e:loop={“select * from [!db.pre!]ecms_news where userid='[!–userid–]’ and id[!–id–] and classid=[!–classid–] order by newstime desc limit 10″,10,24,0}]”>=$bqr[‘title’]?>[/e:loop]

参数说明:

表名根据实际数据表调整,如ecms_news需对应你的系统模型表userid='[!–userid–]’:限定为同一作者发布的文章id[!–id–]:排除当前文章classid=[!–classid–]:可选,限制在同一栏目内调用newstime desc:按发布时间倒序排列limit 10:最多显示10条

注意事项与优化建议

确保系统设置中开启了“存入会员表”选项,否则userid不会被记录。进入后台 → 系统参数设置 → 信息设置,勾选“投稿信息存入会员表”。

若作者非会员(如后台录入),userid为0,则无法正确关联。此时可考虑通过“作者名(writer)”模糊匹配,但存在重名风险,不推荐作为主要方式。

对于多模型站点,应使用union联合查询或动态选择数据表,确保覆盖所有内容类型。

基本上就这些。只要当前文章有有效的userid,就能顺利调用该作者的其他文章。方法简单,实用性强。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。