织梦5.7如何用list标签调用独立模型?

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

通过指定 channelid(模型ID)来让 list 标签知道要从哪个独立模型的表里去获取数据。

织梦5.7list标签怎么调用独立模型
(图片来源网络,侵删)

下面是详细的步骤和代码示例。


第一步:获取你的独立模型的ID

这是最关键的一步,你需要知道你想要调用的那个独立模型在系统里对应的 channelid 是多少。

  1. 登录织梦后台。
  2. 进入【核心】 -> 【内容模型管理】。
  3. 你会看到所有你创建的模型列表,包括“文章”、“图集”、“软件”、“商品”等。
  4. 找到你想要调用的独立模型,图集模型”,查看它最左侧的“ID”列,这个数字就是它的 channelid
  • 文章模型channelid 通常是 1
  • 图集模型channelid 通常是 2
  • 软件模型channelid 通常是 3
  • 商品模型channelid 通常是 4
  • 你的自定义模型:需要根据你创建时分配的ID为准。

假设我们要调用一个“图集模型”,它的 channelid2


第二步:修改 list_articl.htm 模板文件

{dede:list} 标签通常在列表页模板文件中使用,默认的列表页模板是 /templets/default/list_articl.htm

织梦5.7list标签怎么调用独立模型
(图片来源网络,侵删)
  1. 使用FTP或服务器文件管理器,进入你的织梦安装目录。
  2. 找到并打开 /templets/你的模板文件夹/list_articl.htm 文件。(如果你没有自定义模板,则打开 /templets/default/list_articl.htm

第三步:在模板中使用 channelid 参数

list_articl.htm 文件中,找到 {dede:list} 标签,并为其添加 channelid 属性。

基础调用方法(调用指定模型的所有栏目)

这是最简单的方式,它会调用指定模型下所有栏目的内容。

代码示例:

{dede:list pagesize='10' channelid='2'}
    <li>
        <a href="[field:arcurl/]">[field:title/]</a>
        <span>[field:pubdate function="MyDate('Y-m-d',@me)"/]</span>
    </li>
{/dede:list}
<div class="dede_pages">
    <ul>{dede:pagelist listitem="info,index,end,pre,next,pageno" listsize="5"/}</ul>
</div>

代码解释:

织梦5.7list标签怎么调用独立模型
(图片来源网络,侵删)
  • {dede:list pagesize='10' channelid='2'}
    • pagesize='10':每页显示10条记录(可选)。
    • channelid='2'核心参数,告诉织梦要从 channelid2 的模型(即图集模型)中获取数据。
  • [field:arcurl/]:文章的链接地址。
  • [field:title/]:文章的标题。
  • [field:pubdate ...]:发布日期,这里使用了函数来格式化日期。
  • {dede:pagelist/}:分页标签,{dede:list} 必须配合它才能实现分页。

第四步:调用指定独立模型下的特定栏目

我们只想调用某个独立模型下的某个特定栏目(产品图集”栏目)下的内容,而不是所有栏目,这时,你需要结合 typeid 参数。

  1. 获取你目标栏目的 栏目ID(TypeID),进入【核心】 -> 【栏目管理】,找到你想要的栏目,查看其ID。
  2. list 标签中同时指定 channelidtypeid

代码示例:

假设“产品图集”栏目的 typeid5,而它所属的“图集模型”的 channelid2

{dede:list pagesize='12' channelid='2' typeid='5'}
    <li>
        <a href="[field:arcurl/]">
            <img src="[field:litpic/]" alt="[field:title/]" />
            <span>[field:title/]</span>
        </a>
    </li>
{/dede:list}
<div class="dede_pages">
    <ul>{dede:pagelist listitem="info,index,end,pre,next,pageno" listsize="5"/}</ul>
</div>

代码解释:

  • channelid='2':限定了数据来源是“图集模型”。
  • typeid='5':进一步限定了数据来源是栏目ID为 5 的“产品图集”栏目。
  • [field:litpic/]独立模型特有字段,调用文章的缩略图,对于图集模型,这是封面图;对于软件模型,这是软件图标。

第五步:调用独立模型的扩展字段

独立模型最大的特点就是拥有自己的一套扩展字段(如价格、简介、品牌等),要调用这些字段,你需要在后台的【模型管理】 -> 【字段管理】中确认字段的名称(通常是英文),然后使用 [field:自定义字段名/] 的形式来调用。

示例:假设我们有一个“商品模型”(channelid=4),它有 price(价格)和 brand(品牌)两个扩展字段。

{dede:list pagesize='10' channelid='4' typeid='6'}
    <div class="product-item">
        <a href="[field:arcurl/]">
            <img src="[field:litpic/]" alt="[field:title/]" />
        </a>
        <h3><a href="[field:arcurl/]">[field:title/]</a></h3>
        <p class="price">价格:¥[field:price/]</p>
        <p class="brand">品牌:[field:brand/]</p>
    </div>
{/dede:list}

重要提示:

  • 确保字段存在[field:price/] 中的 price 必须是你为该模型添加过的有效字段名。
  • 字段权限:如果该字段在后台设置了“仅后台可显示”,则在前台模板中可能无法调用。

常见问题与注意事项

  1. 分页问题{dede:list} 必须和 {dede:pagelist} 配合使用才能实现分页,如果分页不显示,请检查:

    • {dede:list} 标签是否闭合。
    • {dede:pagelist} 标签是否放在 {dede:list} 循环之外。
    • 确保你调用的是列表页模板(list_xxx.htm),而不是首页或其他页面。
  2. 数据为空:如果调用后列表为空,请检查:

    • channelidtypeid 是否写错。
    • 该栏目下是否真的有符合条件的内容。
    • 独立模型的数据表前缀是否正确(默认是 dede_)。
  3. 性能考虑{dede:list} 在处理大量数据时,性能可能不如 {dede:arclist},如果只是调用少量数据(比如首页调用某个独立模型的推荐内容),建议使用 {dede:arclist} 并配合 channelidtypeid 使用,它更高效。

    {dede:arclist} 调用独立模型的示例:

    {dede:arclist channelid='2' typeid='5' row='8' titlelen='30'}
        <li>
            <a href="[field:arcurl/]">[field:title/]</a>
        </li>
    {/dede:arclist}

调用独立模型的核心就是 channelid 参数,记住这个参数,你就可以灵活地用 {dede:list} 标签来展示任何你想要的独立模型内容了。

-- 展开阅读全文 --
头像
dede article_article是什么?
« 上一篇 12-02
dede 502 bad gateway
下一篇 » 12-02

相关文章

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

目录[+]