织梦首页如何调用产品列表?

99ANYc3cd6
预计阅读时长 20 分钟
位置: 首页 织梦建站 正文

使用官方推荐的 arclist 标签(最常用、最灵活)

arclist 是织梦最强大的列表标签,可以用于调用文章、产品、图集等任何使用主表的数据。

织梦首页调用产品列表
(图片来源网络,侵删)

基础语法

{dede:arclist 
    flag='h' 
    typeid='栏目ID' 
    row='10' len='30' 
    orderby='pubdate' 
    channelid='1'}
    <li>
        <a href="[field:arcurl/]" title="[field:title/]">
            [field:title/]
        </a>
        <span>[field:pubdate function='MyDate('Y-m-d', @me)'/]</span>
    </li>
{/dede:arclist}

参数详解

参数 说明 示例
typeid 指定栏目ID,这是调用产品列表最关键的参数,如果调用多个栏目,用逗号隔开,如 typeid='5,6,7',如果不指定,则调用所有栏目的内容。 typeid='8'
row 调用条数,显示多少条产品信息。 row='6'
infolen 摘要长度摘要显示多少个字符。 infolen='100'
orderby 排序方式,按什么字段排序,常用值:
- pubdate: 按发布时间降序(最新发布在前)
- hot: 按点击量排序
- sortrank: 按后台设定的排序值
orderby='pubdate'
channelid 模型ID,指定要调用的内容所属的模型ID,产品通常是“产品模型”,其ID通常是 1,如果你的自定义模型ID不是1,请填写你的模型ID。 channelid='1'
flag 属性标识,可以指定特定属性的内容,常用值:
- 'h': 只调用头条(推荐)内容
- 'c': 只调用推荐内容
- 'p': 只调用图片内容
多个属性用 隔开,如 flag='h|c'
flag='h'
imgwidth / imgheight 缩略图尺寸,设置调用图片的宽度和高度。 imgwidth='150' imgheight='150'
subday 调用多少天内的内容subday='30' 只调用最近30天内发布的产品。 subday='7'

完整示例:调用“产品展示”栏目下的最新6个产品

假设你的“产品展示”栏目的ID是 8

HTML 结构:

<div class="product-list">
    <h2>我们的产品</h2>
    <ul>
        {dede:arclist typeid='8' row='6' titlelen='30' orderby='pubdate' channelid='1'}
            <li>
                <!-- 调用缩略图,如果没有则显示默认图 -->
                <a href="[field:arcurl/]" title="[field:title/]">
                    <img src="[field:litpic/]" alt="[field:title/]" onerror="this.src='/images/default.jpg'">
                </a>
                <h3><a href="[field:arcurl/]" title="[field:title/]">[field:title/]</a></h3>
                <p class="summary">[field:info/]...</p>
                <p class="date">发布时间:[field:pubdate function='MyDate('Y-m-d', @me)'/]</p>
            </li>
        {/dede:arclist}
    </ul>
</div>

代码解释:

  • [field:arcurl/]: 获取该产品详情页的链接。
  • [field:litpic/]: 获取该产品的缩略图路径。
  • [field:title/]: 获取产品标题。
  • [field:info/]: 获取产品摘要(通常是文章内容的前面部分)。
  • [field:pubdate function='MyDate('Y-m-d', @me)'/]: 获取发布时间,并用 MyDate 函数格式化为 年-月-日 的格式。
  • onerror="this.src='/images/default.jpg'": 这是一个很好的实践,当产品没有上传缩略图时,会显示一个默认图片,避免页面布局错乱。

使用 sql 标签(高级、自定义查询)

当你需要更复杂的查询条件,而 arclist 标签无法满足时(按产品价格排序、调用特定品牌的产品等),可以使用 sql 标签直接执行SQL语句。

织梦首页调用产品列表
(图片来源网络,侵删)

基础语法

{dede:sql sql="SELECT id, title, litpic, pubdate FROM `dede_archives` WHERE typeid IN (8) AND channel=1 ORDER BY pubdate DESC LIMIT 0,6"}
    <li>
        <a href="/plus/view.php?aid=[field:id/]" title="[field:title/]">
            <img src="[field:litpic/]" alt="[field:title/]">
            [field:title/]
        </a>
    </li>
{/dede:sql}

参数详解

  • sql: 这里写你的SQL查询语句。
    • dede_archives: 这是织梦的主表,存储了所有文章的基本信息(标题、发布时间、所属栏目等)。
    • typeid IN (8): 指定栏目ID为8。IN 关键字可以用于多个ID,如 IN (8, 9)
    • channel=1: 指定内容模型ID为1(产品模型)。
    • ORDER BY pubdate DESC: 按发布时间降序排列。
    • LIMIT 0,6: 从第0条开始,获取6条数据(即最新6条)。
  • [field:id/]: 获取查询结果中 id 字段的值。
  • 注意: 使用 sql 标签时,详情页的链接需要手动拼接,通常是 /plus/view.php?aid=[field:id/]

使用 product 标签(专为产品模型设计)

如果你的产品模型有自定义字段,使用 product 标签可以更方便地调用这些字段,这个标签的用法和 arclist 非常相似,但更专注于产品。

基础语法

{dede:product 
    typeid='8' 
    row='6' len='30' 
    orderby='pubdate'}
    <li>
        <a href="[field:arcurl/]" title="[field:title/]">
            [field:title/]
        </a>
        <span>价格:[field:price/]</span> <!-- 假设你有一个名为 price 的自定义字段 -->
    </li>
{/dede:product}

参数详解

product 标签的大部分参数与 arclist 相同,如 typeid, row, titlelen, orderby 等,它的优势在于可以直接调用产品模型的自定义字段。

如何调用自定义字段?

  1. 确保自定义字段存在:在后台“核心” -> “内容模型管理” -> “编辑你的产品模型”中,确保你已经添加了自定义字段,price(价格)、brand(品牌)等。

  2. 在模板中调用

    织梦首页调用产品列表
    (图片来源网络,侵删)
    • 直接调用:如果字段是单行文本、数字等,直接使用 [field:字段名/]
      价格:[field:price/]
      品牌:[field:brand/]
    • 调用编辑器字段:如果字段是使用编辑器(如“文本编辑器”)填写的,通常存储在附加表中,需要使用 array 标签。
      {dede:product typeid='8' row='6'}
      <li>
          <a href="[field:arcurl/]" title="[field:title/]">[field:title/]</a>
          <!-- 假设 productintro 是一个编辑器类型的自定义字段 -->
          [field:array runphp='yes']
              if(@me['productintro'] != '') {
                  @me = '<p class="intro">'.@me['productintro'].'</p>';
              } else {
                  @me = '';
              }
          [/field:array]
      </li>
      {/dede:product}

总结与推荐

方法 优点 缺点 适用场景
arclist 最常用、最灵活、官方推荐,参数丰富,能满足90%的需求。 对于非常复杂的自定义字段查询,略显繁琐。 绝大多数情况下的首选,调用最新、最热、推荐产品等。
sql 功能最强大,可以执行任何SQL查询,自由度极高。 需要懂SQL,且字段名需要手动填写,容易出错。 需要复杂查询,如按价格、销量等自定义字段排序,或跨表查询。
product 专为产品模型设计,调用自定义字段更直观。 不如 arclist 通用,很多高级参数不支持。 主要用于产品模型,特别是需要频繁调用特定自定义字段时。

给新手的建议:

  1. arclist 开始,先掌握 arclist 的用法,它能解决你大部分问题。
  2. 学会查看栏目ID,在后台“栏目”管理中,鼠标移动到目标栏目上,浏览器左下角状态栏会显示该栏目的ID。
  3. 善用 onerror,为图片添加 onerror 属性,可以避免因缺少缩略图导致的页面布局错乱,提升用户体验。
  4. 自定义字段调用,如果需要调用产品价格、规格等自定义字段,优先使用 arclist,通过 [field:字段名/] 的方式调用即可。
-- 展开阅读全文 --
头像
织梦后台还原数据为何这么慢?
« 上一篇 今天
dede模块生成向导如何快速创建自定义模块?
下一篇 » 今天

相关文章

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

目录[+]