菜鸟科技网

dede列表页如何调用价格?

在织梦(DedeCMS)系统中,列表页调用商品价格是电商类网站常见的需求,但默认情况下织梦列表页并不直接支持调用自定义字段如价格,需要通过修改模板文件、调整字段调用方式或使用SQL标签实现,以下是详细的操作方法和注意事项,帮助您在列表页正确显示价格信息。

dede列表页如何调用价格?-图1
(图片来源网络,侵删)

准备工作:确保价格字段已正确添加

在调用价格之前,需确认后台已为对应模型添加了价格字段,以普通文章模型为例,操作步骤如下:

  1. 登录织梦后台,进入“核心”→“内容模型管理”→“普通文章模型”→“字段管理”。
  2. 点击“添加字段”,设置字段参数:
    • 字段名称:price(建议用英文,避免中文乱码)
    • 字段类型:数字(适用于纯价格)或文本(适用于带货币符号的价格)
    • 字段提示:商品价格
    • 其他选项保持默认,点击“保存”。
  3. 在发布或编辑文档时,填写价格信息,并确保字段值已保存。

方法一:使用[field:函数]调用自定义字段

织梦默认支持通过[field:自定义字段名]调用自定义字段,但需确保字段名正确且模型绑定无误,操作步骤:

  1. 打开列表页模板文件(通常位于/templets/default/list_*.htm)。
  2. 在需要显示价格的位置插入代码:
    [field:price function="GetMoney(@me)"/]
    • @me表示当前字段的值,GetMoney()是织梦内置的货币格式化函数(如添加“¥”符号),若无需格式化可直接使用[field:price/]
  3. 保存模板文件,更新列表页缓存(后台“生成”→“更新主页HTML”)。

注意事项

  • 若价格未显示,检查字段名是否与后台设置一致(区分大小写)。
  • 确保文档列表选择了包含该字段的模型,否则字段值为空。

方法二:通过SQL标签调用价格

当字段调用无效或需要复杂条件时,可使用SQL标签直接查询数据库,操作步骤:

dede列表页如何调用价格?-图2
(图片来源网络,侵删)
  1. 在列表页模板中插入SQL标签代码:
    {dede:sql sql="SELECT price FROM `dede_addonarticle` WHERE aid=~id~"}
    [field:price/]
    {/dede:sql}
    • dede_addonarticle为附加表名,若为其他模型(如产品模型)需替换为对应表名(如dede_addonproduct)。
    • ~id~为当前文档的ID,织梦会自动替换。
  2. 若需格式化价格,可结合函数:
    {dede:sql sql="SELECT price FROM `dede_addonarticle` WHERE aid=~id~"}
    [field:price function="sprintf('%.2f',@me)"/]
    {/dede:sql}

注意事项

  • SQL标签可能影响性能,建议仅在必要时使用。
  • 确保表名和字段名正确,避免SQL语法错误。

方法三:使用arclist标签调用价格

arclist标签是织梦列表页的核心标签,通过设置addfields参数可调用自定义字段,操作步骤:

  1. 在列表页模板中修改arclist标签:
    {dede:arclist addfields='price' channelid='1'}
    <li>
      <a href="[field:arcurl/]">[field:title/]</a>
      价格:[field:price/]
    </li>
    {/dede:arclist}
    • addfields='price'指定调用的自定义字段。
    • channelid='1'为模型ID,需与实际模型对应。

注意事项

  • 仅适用于附加表字段,普通主表字段无需addfields
  • 若字段不显示,检查模型是否勾选了“使字段可以在列表页模板使用”。

常见问题与解决方案

  1. 价格显示为空

    dede列表页如何调用价格?-图3
    (图片来源网络,侵删)
    • 原因:字段名错误、模型未绑定字段或文档未填写价格。
    • 解决:检查后台字段设置,确保文档已保存价格数据。
  2. 价格格式异常

    • 原因:未使用格式化函数或字段类型选择不当。
    • 解决:使用function="GetMoney(@me)"function="number_format(@me,2)"格式化。

价格调用代码示例对比

方法 代码示例 适用场景 优点 缺点
field标签 [field:price function="GetMoney(@me)"/] 简单字段调用 代码简洁 需确保字段正确配置
SQL标签 {dede:sql sql="SELECT price FROM..."/} 复杂条件查询 灵活度高 性能较低
arclist标签 {dede:arclist addfields='price'...} 列表页多字段调用 支持分页与排序 需指定模型ID

相关问答FAQs

问题1:为什么使用[field:price/]在列表页无法显示价格?
解答:可能原因有三:一是后台未为模型添加price字段或字段名错误;二是发布文档时未填写价格值;三是模板缓存未更新,解决方案:检查字段设置,确保文档数据完整,并在后台“生成”→“更新缓存”后刷新页面。

问题2:如何在列表页将价格格式化为“¥99.00”形式?
解答:可通过织梦内置函数实现,在调用价格时添加function参数,[field:price function='sprintf("¥%.2f",@me)'/],其中%.2f表示保留两位小数,为货币符号,可根据需求调整。

通过以上方法,您可以在织梦列表页灵活调用并显示价格信息,操作时需注意字段配置与模板语法的正确性,避免因大小写或表名错误导致调用失败,如需进一步优化,可结合CSS样式实现价格对齐、颜色区分等展示效果。

分享:
扫描分享到社交APP
上一篇
下一篇