在使用Dedecms CMS模板开发装修网站时,设计师和设计作品之间的关联是一个重要的功能。为了实现这一目标,发布文章(作品)时需要将部分内容存储在主表dede_addonarticle中,而另一部分内容(通常是自定义字段)则存储在附加表dede_archives中。本文将详细介绍两种实现方法:①根据发布人调用相关文章;②通过判断频道模型附加表自定义字段的值是否相同,来调用主表中的相关文章。
首先推荐使用附加表自定义字段进行关联的方法,这种方法更为灵活且易于维护。
思路:
通过判断附加表中的某个自定义字段来调用主表中的内容。需要注意的是,文章的ID和附加表的AID是一一对应的。
详细步骤:
① 在核心管理后台,依次点击“核心 -> 内容模型管理 -> 普通文章 -> 字段管理 -> 添加新字段(designer)”。这样可以为频道模型增加一个自定义字段。

// 示例代码:添加新字段
// 字段名称:designer
// 字段类型:文本框
// 字段说明:用于关联设计师与作品
    
② 在模板中使用SQL标签进行调用。以下是具体的SQL语句示例:

{dede:sql sql="SELECT * FROM dede_archives JOIN dede_addonarticle ON dede_addonarticle.aid = dede_archives.id where dede_addonarticle.designer=~designer~ ORDER BY id desc limit 9999"}

[field:designer/]的其他作品:

[field:title/]

[field:title/]

[field:description/]

{/dede:sql}

说明:
该SQL语句中的橙色部分需要根据实际情况进行修改。其中,dede_archives是文章主表,dede_addonarticle是附加表,红色的“designer”是自定义字段。
另一种方法是通过文章发布者进行关联。虽然这种方法简单,但一旦作者发生变化,关联就会失效。以下是一个基于文章发布者的SQL调用示例:

{dede:sql sql="Select * From dede_addonarticle where writer = ~writer~"}

[field:title/][field:writer/]

{/dede:sql}

此外,还可以使用arclist或list标签进行调用。例如:

{dede:arclist writer=~writer~ }

[field:title/][field:writer/]

{/dede:arclist}

说明:
writer=~writer~ 和 writer=this 的效果是相同的。
最后,还可以尝试通过文章关键词来关联文章。这种方法虽然稍显复杂,但在某些场景下非常实用。具体做法是在发布设计师信息时,将关键词设置为设计师名称;同时,在发布作品时也填写对应的设计师名称作为关键词。之后可以通过likearticle标签调用相似文章。例如:

{dede:likearticle mytypeid='1,2,3'}

[field:title/]

{/dede:likearticle}

通过以上方法,您可以根据实际需求选择最适合的方案来实现设计师与作品之间的关联。无论是使用自定义字段、文章发布者还是关键词,都能有效提升用户体验并增强网站的功能性。