- 文章本身就是产品介绍,比如你有一个“产品展示”的栏目,里面的每一篇文章都详细介绍一个产品,你希望在文章页内显示该产品相关的额外信息,如价格、型号、购买按钮等。
- 文章与产品相关联,比如你有一个“新闻资讯”或“技术文章”的栏目,文章中提到了某个产品,你希望在文章旁边展示这个产品的信息,方便用户跳转或购买。
这两种场景的实现方法不同,下面我将分别详细讲解。
文章本身就是产品介绍(最常用)
这种情况最常见,也最简单,核心思想是:将产品信息作为附加字段,存储在文章的数据表里。
第一步:创建自定义字段
你需要在后台为你的“产品”栏目(或所有栏目)添加一些自定义字段来存储产品信息。
-
登录织梦后台 -> 核心 -> 频道模型 -> 内容模型管理。
-
找到你用于存放产品的“内容模型”(通常是“文章模型”),点击其后的 [字段管理]。
-
在字段管理页面,点击 [添加新字段]。
-
为产品信息添加以下字段(示例):
- 字段名:
price(必须小写,不能有特殊字符) - :
产品价格 - 字段类型:
单行文本(如果价格是数字) 或数字(推荐) - 是否为空:
否(根据需要) - 默认值: ( 0.00)
- 字段说明:
请输入产品价格 - 其他选项保持默认即可。
用同样的方法,再添加其他字段,
model(产品型号)brand(品牌)stock(库存)buy_link(购买链接)
- 字段名:
-
添加完所有字段后,点击 [保存]。
第二步:在内容页模板中调用字段
你可以在内容页模板(通常是 /templets/default/article_article.htm)中使用 {dede:field.字段名/} 来调用这些自定义字段。
示例代码:
在你的 article_article.htm 模板中,找到你想显示产品信息的位置,加入以下代码:
<article class="article-content">
{dede:field.body/}
<!-- 产品信息展示区域 -->
<div class="product-info-box">
<h3>产品详情</h3>
<ul>
<li><strong>产品型号:</strong> {dede:field.model/}</li>
<li><strong>产品品牌:</strong> {dede:field.brand/}</li>
<li><strong>产品价格:</strong> <span class="price">¥{dede:field.price/}</span></li>
<li><strong>库存状态:</strong> {dede:field.stock runphp='yes'} if(@me > 0) @me = "有货"; else @me = "缺货"; {/dede:field.stock}</li>
</ul>
{dede:field.buylink/}
<a href="[field:buylink/]" class="buy-button" target="_blank">立即购买</a>
</div>
</article>
代码解释:
{dede:field.model/}: 调用你创建的“model”字段的值。{dede:field.price/}: 调用“price”字段的值。runphp='yes': 这是一个强大的功能,允许你在模板中直接执行PHP代码,上面的例子中,我们用它来根据库存数字显示“有货”或“缺货”。[field:buylink/]: 这里使用了简化的写法,和{dede:field.buylink/}效果一样,都是调用字段值。
第三步:在前台发布文章时填写信息
当你去发布一篇新文章时,会看到你刚刚创建的字段(产品价格、型号等),填写上对应的信息即可。
文章与产品相关联(高级用法)
这种情况适用于文章和产品是独立存在的,但需要通过某种方式将它们关联起来,实现方法有多种,这里介绍最常用和最推荐的一种:使用关联文章。
使用织梦自带的“关联文档”功能
织梦有内置的“关联文档”功能,可以轻松实现文章和产品(或其他文章)的互相链接。
-
发布文章时设置关联:
- 在后台发布文章时,找到“关联文档”这个部分。
- 点击“选择文档”,在弹出的窗口中,选择你想要关联的“产品”文章。
- 保存文章。
-
页模板中调用关联产品:
- 在你的
article_article.htm模板中,使用{dede:likearticle}标签来调用与当前文章关联的产品。 - 这个标签会调用出所有与当前文章互相关联的文档。
- 在你的
示例代码:
<article class="article-content">
{dede:field.body/}
</article>
<!-- 关联产品推荐 -->
<div class="related-products">
<h3>相关产品推荐</h3>
<ul>
{dede:likearticle row='4' titlelen='30'}
<li>
<a href="[field:arcurl/]">
<img src="[field:picname/]" alt="[field:title/]">
<h4>[field:title/]</h4>
<p class="price">¥{dede:field name='price'/}</p> <!-- 注意:这里调用的依然是产品文章的自定义字段 -->
</a>
</li>
{/dede:likearticle}
</ul>
</div>
代码解释:
{dede:likearticle row='4' titlelen='30'}:row='4': 显示4条关联产品。titlelen='30': 标题最多显示30个字符。- 这个标签会循环输出所有关联的文档。
[field:arcurl/]: 关联文章的链接。[field:picname/]: 关联文章的缩略图。[field:title/]: 关联文章的标题。{dede:field name='price'/}: 关键点,这里调用的依然是产品文章中你自定义的price字段,因为likearticle是调用其他文章的数据,所以可以直接使用那些文章的字段。
使用自定义模型和联动菜单(更灵活)
如果你的产品有分类,并且文章需要指向某个产品分类,而不是单个产品,可以使用联动菜单。
-
创建联动菜单字段:
- 在 频道模型 -> 字段管理 中,添加一个新字段。
- 字段类型 选择
联动类型。 - 在“联动类型”选项中,你需要先在“联动类别管理”里创建好“产品分类”的菜单结构。
- 保存字段,例如字段名为
product_category。
-
在文章中设置产品分类:
发布文章时,就会出现一个下拉菜单,让你选择产品分类。
-
页模板中调用该分类下的产品:
- 这需要用到更复杂的SQL查询,通常结合
{dede:sql}标签来实现,比较复杂,不推荐新手使用。
- 这需要用到更复杂的SQL查询,通常结合
总结与建议
| 场景 | 推荐方法 | 优点 | 缺点 |
|---|---|---|---|
| 文章就是产品 | 自定义字段 | 简单、直接、性能好,是织梦的标准用法。 | 如果文章和产品属性差异大,管理起来可能混乱。 |
| 文章关联产品 | 关联文档功能 | 无需修改数据库,功能内置,易于使用,能实现双向关联。 | 关联是手动设置的,如果产品很多,会很麻烦。 |
| 文章指向产品分类 | 联动菜单 + SQL查询 | 非常灵活,可以动态调用分类下的所有产品。 | 实现复杂,需要懂SQL,对性能有一定影响。 |
对于99%的需求,场景一使用“自定义字段” 和 场景二使用“关联文档” 就已经足够了,这是最标准、最稳定、最易于维护的解决方案。
希望这个详细的教程能帮到你!
