dede相关产品调用怎么实现?

99ANYc3cd6
预计阅读时长 15 分钟
位置: 首页 DEDE建站 正文

核心思路

调用相关产品的核心逻辑是:根据当前内容的某个“特征”去数据库中查找其他具有相同特征的内容,这个“特征”通常是:

dede相关产品调用
(图片来源网络,侵删)
  1. 栏目ID(Channel ID):最常用、最简单的方法,调用与当前内容属于同一栏目的其他产品。
  2. 关键词(Keywords):更智能的方法,提取当前内容的关键词,然后去全站或指定栏目下查找包含这些关键词的产品。
  3. 自定义字段:更灵活的方法,如果产品有自定义的分类(如“品牌”、“颜色”、“适用车型”等),可以根据这些自定义字段的值来调用。

调用同一栏目的产品(最常用)

这是最直接、最简单的方法,适用于绝大多数场景,语法清晰,性能也最好。

适用场景:

  • 在一个产品详情页,推荐同品牌下的其他产品。
  • 在一个文章页,推荐同一分类下的其他文章。

标签代码:

{dede:arclist typeid='当前栏目ID' titlelen='30' row='6'}
    <li>
        <a href="[field:arcurl/]" title="[field:title/]">
            <img src="[field:picname/]" alt="[field:title/]">
            <p>[field:title/]</p>
        </a>
    </li>
{/dede:arclist}

代码解析:

  • typeid='当前栏目ID':这是核心参数。你需要手动将 '当前栏目ID' 替换成实际的目标栏目ID,如果当前文章在ID为 5 的栏目下,你想调用ID为 5 的栏目下的产品,就写 typeid='5'
    • 动态获取当前栏目ID:如果你不想手动填写,可以使用DedeCMS的内置变量 typeid 来动态获取当前页面的栏目ID,但请注意,在列表页直接使用 typeid 会调用当前栏目,而在文章页则需要结合 {dede:field} 标签,在实际应用中,为了简单和可控,强烈建议直接填写目标栏目的ID,len='30'`:标题长度,截取30个字符。
  • row='6':调用条数,显示6条产品。
  • [field:arcurl/]:文章/产品的链接地址。
  • [field:picname/]:文章/产品的图片地址(需要有图片才行)。
  • [field:title/]:文章/产品的标题。

基于关键词的相关产品(更智能)

这种方法通过提取当前内容的关键词,然后去匹配其他内容,相关性通常更高。

适用场景:跨度较大,但主题相关的网站,一篇关于“环保材料”的文章,可以推荐其他包含“环保”、“材料”等关键词的文章,即使它们不在同一个栏目。

标签代码:

{dede:likearticle row='6' titlelen='30'}
    <li>
        <a href="[field:arcurl/]" title="[field:title/]">
            <img src="[field:picname/]" alt="[field:title/]">
            <p>[field:title/]</p>
        </a>
    </li>
{/dede:likearticle}

代码解析:

  • {dede:likearticle}:这是DedeCMS专门用于调用相关内容的标签。
  • row='6'titlelen='30':与方法一中的参数含义相同,控制调用数量和标题长度。
  • 工作原理:这个标签会自动获取当前文章的关键词(在后台编辑文章时填写),然后在数据库中进行模糊匹配,查找包含这些关键词的其他文章。

注意事项:

  1. 关键词是前提:必须为每一篇需要调用相关内容的文章在后台编辑时填写关键词,否则此标签将无法工作或调用结果不准确。
  2. 可能包含自身:此标签可能会调用出当前文章本身,如果不想显示当前文章,可以结合 notid 参数(需要开启相关函数支持)或通过CSS/JS来隐藏,一个简单的办法是在后台关键词设置时,将当前文章标题也作为一个关键词加入,这样调用时可能会因为权重问题而降低自身出现的概率,但这不是最可靠的方案。

基于自定义字段的相关产品(最灵活)

如果你的产品有额外的分类维度,品牌”、“系列”、“适用机型”等,使用自定义字段可以实现非常精准的相关推荐。

适用场景:

  • 电商网站:根据“品牌”推荐其他同品牌产品。
  • 下载站:根据“软件类型”推荐其他同类软件。
  • 汽车网站:根据“品牌”或“车型”推荐相关车型。

操作步骤(以“品牌”为例):

第一步:创建自定义字段

dede相关产品调用
(图片来源网络,侵删)
  1. 进入DedeCMS后台 -> 核心 -> 内容模型管理
  2. 选择你的产品内容模型(产品”),点击“更改”。
  3. 在“字段管理”中,添加一个自定义字段,
    • 字段名brand (英文,不能重复)
    • 品牌 (中文,后台显示用)
    • 字段类型单行文本下拉列表 (如果品牌是固定的,下拉列表更好管理)
  4. 保存后,去发布一篇产品,就会发现新增了“品牌”这一项,需要填写内容(苹果”、“华为”)。

第二步:调用相关产品

这里需要使用 sql 标签来执行自定义查询。

{dede:sql sql='SELECT * FROM `dede_archives` a LEFT JOIN `dede_addonproduct` p ON a.id = aid WHERE a.typeid = ~typeid~ AND p.brand = "~brand~" AND a.id != ~id~ LIMIT 0,6'}
    <li>
        <a href="[field:arcurl/]" title="[field:title/]">
            <!-- 注意:图片字段可能在不同表,需要根据你的模型调整 -->
            <img src="[field:picname/]" alt="[field:title/]">
            <p>[field:title/]</p>
        </a>
    </li>
{/dede:sql}

代码解析:

  • dede:sql:执行自定义SQL语句的标签。
  • sql='...':SQL查询语句。
  • ~typeid~:DedeCMS的变量替换,会自动替换为当前栏目的ID。
  • ~id~:DedeCMS的变量替换,会自动替换为当前文章的ID。
  • p.brand = "~brand~":这是关键,它会获取当前文章在 brand 自定义字段中填写的值,并作为查询条件。
    • 注意:如果你的自定义字段在 dede_archives 主表,那么就不需要 LEFT JOIN,这里假设你创建了模型,自定义字段在附加表 dede_addonproduct 中,所以需要关联查询。请根据你的实际情况修改表名和字段名
  • AND a.id != ~id~:排除当前文章本身,避免重复。
  • LIMIT 0,6:从第0条开始,取6条数据。
  • [field:arcurl/][field:title/]:在sql标签中,这些字段名对应的是SQL查询结果中的列名(即数据库表中的字段名)。

总结与建议

方法 优点 缺点 适用场景
同一栏目 简单、快速、性能好 相关性单一,仅限同一栏目 绝大多数情况下的首选,如列表页推荐、详情页同分类推荐。
相关性高,跨栏目 依赖关键词填写,可能包含自身 内容主题关联性强,但栏目分类不细致的网站。
自定义字段 极其灵活、精准 设置复杂,需要懂SQL和模型 有特殊分类维度的网站,如电商、下载站、行业垂直网站。

给你的建议:

  1. 从方法一开始:对于初学者和大多数需求,直接使用方法一,手动填写 typeid 是最稳妥、最直接的方式。
  2. 完善关键词:无论使用哪种方法,都养成在后台编辑内容时认真填写关键词的习惯,这对你网站的SEO和内部链接都有好处。
  3. 组合使用:在实际项目中,可以组合使用这些方法,先用方法一调用同栏目的产品,如果数量不够,再用方法二补充调用一些关键词相关的产品。

希望这些详细的解释能帮助你顺利在DedeCMS中调用相关产品!

dede相关产品调用
(图片来源网络,侵删)
-- 展开阅读全文 --
头像
dede封面模板到底是什么意思?
« 上一篇 今天
C语言together是什么?
下一篇 » 今天

相关文章

取消
微信二维码
支付宝二维码

目录[+]