在织梦CMS(DedeCMS)系统中,文章页修改产品信息是一个常见的需求,尤其是对于电商类资讯网站或需要展示产品的企业官网,织梦的文章页默认以文章内容为主,但通过合理的修改和扩展,可以灵活地添加产品展示、购买链接等功能,以下是详细的操作步骤和注意事项,帮助您实现织梦文章页的产品修改功能。

前期准备:明确需求与数据结构
在修改文章页之前,需要明确以下几点:
- 产品信息类型:确定需要在文章页展示哪些产品信息,如产品名称、价格、图片、购买链接、库存状态等。
- 数据来源:产品信息是直接存储在文章表(ded_archives)中,还是通过关联产品表(如自定义表)获取,如果是后者,可能需要建立文章与产品的关联关系。
- 展示形式:决定产品信息是以文本、图片、表格还是其他形式展示,例如在文章内容下方插入产品卡片或表格。
修改文章页模板(article_article.htm)
织梦的文章页模板通常位于/templets/default/article_article.htm
,通过修改该文件可以调整文章页的显示结构,以下是具体步骤:
备份原始模板
在修改前,务必先备份原始的article_article.htm
文件,避免操作失误导致页面异常。
在模板中添加产品展示区域
根据需求,在文章内容({dede:field.body/}
)的适当位置插入产品展示代码,在文章内容下方添加一个产品表格:

<div class="product-section"> <h3>相关产品</h3> <table border="1" cellpadding="5" cellspacing="0"> <thead> <tr> <th>产品名称</th> <th>价格</th> <th>购买链接</th> </tr> </thead> <tbody> <!-- 产品数据将通过循环输出 --> {dede:sql sql="SELECT * FROM dede_product WHERE aid=~id~"} <tr> <td>[field:productname/]</td> <td>¥[field:price/]</td> <td><a href="[field:buylink/]" target="_blank">立即购买</a></td> </tr> {/dede:sql} </tbody> </table> </div>
说明:
- 上述代码假设产品信息存储在
dede_product
表中,并通过文章ID(~id~
)与文章关联,实际使用时需根据数据库结构调整SQL语句。 - 如果产品信息较少且固定,也可以直接手动在模板中添加HTML代码,无需使用SQL标签。
调用产品图片(如需展示)
如果产品需要展示图片,可在表格中添加图片列,并调用图片地址:
<td><img src="[field:productpic/]" alt="[field:productname/]" width="100"></td>
通过自定义字段扩展产品信息
如果产品信息需要灵活管理,可以通过织梦的自定义字段功能实现:
添加自定义字段
- 登录织梦后台,进入“核心”→“内容模型管理”→“普通文章”→“字段管理”。
- 点击“添加新字段”,设置字段名称(如
product_price
)、字段类型(“文本”或“数字”)、是否显示在列表页等。 - 保存后,在文章编辑页面的“自定义字段”区域填写产品信息。
在模板中调用自定义字段
在article_article.htm
模板中通过{dede:field.name/}
调用自定义字段,

<div class="product-info"> <p>产品价格:{dede:field.product_price/}</p> <p>购买链接:<a href="{dede:field.product_link/}" target="_blank">点击购买</a></p> </div>
通过联动类型或枚举值优化选择
如果产品信息是固定的选项(如产品类型、规格),可通过“联动类型”或“枚举值”字段实现:
- 联动类型:适用于多级分类(如产品分类>子分类)。
- 枚举值:适用于单选选项(如产品规格:S/M/L)。 在字段管理中设置后,编辑文章时即可通过下拉菜单选择,无需手动输入。
CSS样式美化
为产品展示区域添加CSS样式,使其更美观。
.product-section { margin: 20px 0; padding: 15px; border: 1px solid #ddd; } .product-section table { width: 100%; border-collapse: collapse; } .product-section th, .product-section td { padding: 8px; text-align: left; border-bottom: 1px solid #eee; } .product-section img { max-width: 100px; height: auto; }
注意事项
- 数据库安全:直接使用SQL标签时,需确保SQL语句安全,避免SQL注入,建议使用织梦的
{dede:sql}
标签时限制查询条件。 - 缓存问题:修改模板后,需在后台“生成”→“更新HTML”以清除缓存,否则可能看不到效果。
- 兼容性测试:在不同浏览器和设备上测试页面显示效果,确保兼容性。
相关问答FAQs
问题1:如何在文章页调用多个产品信息?
解答:可以通过自定义字段存储多个产品信息(如JSON格式),然后使用PHP代码解析输出,在自定义字段中输入[{"name":"产品1","price":100},{"name":"产品2","price":200}]
,在模板中通过以下代码循环输出:
{dede:field.name runphp='yes'} $products = json_decode(@me, true); $output = '<ul>'; foreach ($products as $p) { $output .= '<li>'.$p['name'].' - ¥'.$p['price'].'</li>'; } $output .= '</ul>'; @me = $output; {/dede:field.name}
问题2:如何实现文章与产品的动态关联?
解答:可以通过在文章表或产品表中添加关联字段(如product_id
),然后在模板中使用SQL语句关联查询,在文章表中添加product_id
字段,存储对应的产品ID,模板中通过以下代码调用产品信息:
{dede:sql sql="SELECT * FROM dede_product WHERE id=~field.product_id~"} <div class="product"> <h3>[field:productname/]</h3> <p>价格:¥[field:price/]</p> </div> {/dede:sql}