织梦栏目列表如何不显示文章?

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

在循环文章的 {dede:list} 标签内,只调用你需要的字段(如标题、缩略图、简介等),并移除或注释掉调用文章内容(bodycontent)的标签。

下面我将提供几种常见的实现方法和详细的步骤。


最直接的方法 - 修改默认列表模板

这是最常用、最直接的方法,你需要编辑你当前使用的栏目列表模板文件。

操作步骤:

  1. 登录织梦后台:使用你的管理员账号登录织梦CMS后台。

  2. 找到模板文件

    • 在后台左侧菜单,找到 【模板】 -> 【默认模板管理】
    • 在模板列表中,找到你当前网站正在使用的 【栏目列表页模板】,这个文件通常位于 /templets/default/ 目录下,文件名一般是 list_article.htm
    • 点击 【修改】 按钮。
  3. 编辑模板代码

    • 在打开的模板代码编辑器中,找到 {dede:list}{/dede:list} 这对标签,它们之间的代码就是循环显示单篇文章内容的地方。
    • 默认的代码 可能是这样的:
      {dede:list}
      <li>
          <a href="[field:arcurl/]">[field:title/]</a>
          <span>[field:pubdate function="MyDate('Y-m-d',@me)"/]</span>
          <p>[field:description function="cn_substr(@me, 100)"/]...</p>
          <div class="entry">
              [field:body/]
          </div>
      </li>
      {/dede:list}
    • 修改后的代码:你只需要移除或注释掉调用文章内容 body 的部分即可,上面的代码中,<div class="entry">[field:body/]</div> 这部分就是显示文章全文的,应该把它删除。
    • 最终代码 修改为:
      {dede:list}
      <li>
          <a href="[field:arcurl/]">[field:title/]</a>
          <span>[field:pubdate function="MyDate('Y-m-d',@me)"/]</span>
          <p>[field:description function="cn_substr(@me, 100)"/]...</p>
          <!-- 移除了 <div class="entry">[field:body/]</div> -->
      </li>
      {/dede:list}
    • 保存模板:点击编辑器下方的 【保存】 按钮。
  4. 更新栏目缓存

    • 为了让修改立即生效,请务必在后台更新缓存。
    • 进入 【系统】 -> 【一键更新网站】 -> 【更新栏目HTML】【更新文档HTML】
    • 你也可以直接点击顶部的 【生成】 按钮,选择相应的更新选项。

你的栏目列表页就不会再显示文章的正文内容了。


使用更灵活的 [field:info/]

织梦提供了一个非常实用的标签 [field:info/],它默认调用文章的内容,但可以通过参数来控制显示的字数。

  • [field:info/] 等同于 [field:body/]
  • [field:info/num='100'] 可以限制只显示前100个字符。

如果你想显示文章的开头部分作为摘要,而不是调用“文章简介”(description)字段,可以使用这个方法。

示例代码:

{dede:list}
<div class="article-item">
    <h2><a href="[field:arcurl/]">[field:title/]</a></h2>
    <div class="thumb">
        <a href="[field:arcurl/]"><img src="[field:litpic/]" alt="[field:title/]" /></a>
    </div>
    <div class="summary">
        <p>[field:info/num='150']...</p>
    </div>
    <div class="meta">
        <span>作者:[field:writer/]</span>
        <span>时间:[field:pubdate function="MyDate('Y-m-d',@me)"/]</span>
        <span>阅读:[field:click/]</span>
    </div>
</div>
{/dede:list}

注意:使用 [field:info/num='N'] 时,它会从文章正文的第一个字符开始截取,可能会破坏HTML标签,导致样式错乱。强烈建议在后台发布文章时,手动填写“文章简介”(description)字段,然后在模板中使用 [field:description/],这样更可控、更安全。


自定义列表模板(推荐)

如果你的网站有多个栏目,并且希望某些栏目列表显示摘要,某些栏目列表不显示任何内容(只显示标题),最好的方法是为不同的栏目设置不同的列表模板

操作步骤:

  1. 创建多个模板文件

    • 复制 /templets/default/list_article.htm 文件,并重命名为 list_summary.htm(摘要版)。

    • 复制 /templets/default/list_article.htm 文件,并重命名为 list_title.htm版)。

    • 分别编辑这两个新文件,实现你需要的不同样式。

    • list_summary.htm 内容示例(显示标题、图片、简介):

      {dede:list}
      <div class="post">
          <h3><a href="[field:arcurl/]">[field:title/]</a></h3>
          <p class="postmeta">日期:[field:pubdate function="MyDate('Y-m-d',@me)"]</p>
          <div class="entry">
              <a href="[field:arcurl/]"><img src="[field:litpic/]" alt="[field:title/]" class="thumbnail" /></a>
              [field:description function="cn_substr(@me, 200)"/]...
          </div>
      </div>
      {/dede:list}
    • list_title.htm 内容示例(仅显示标题):

      {dede:list}
      <div class="post-title-only">
          <h3><a href="[field:arcurl/]">[field:title/]</a></h3>
          <p class="postmeta">日期:[field:pubdate function="MyDate('Y-m-d',@me)"]</p>
      </div>
      {/dede:list}
  2. 为栏目指定模板

    • 在织梦后台,进入 【核心】 -> 【栏目管理】
    • 点击你想要修改的栏目名称,进入栏目编辑页面。
    • 在“栏目内容”设置区域,找到 【列表模板】 选项。
    • 从下拉菜单中选择你刚刚创建的模板文件,list_summary.htmlist_title.htm
    • 保存即可。

这种方法非常灵活,可以针对不同栏目实现完全不同的列表展示效果。


总结与建议

方法 优点 缺点 适用场景
修改默认模板 简单快速,一劳永逸。 会影响所有使用默认模板的栏目。 网站结构简单,所有栏目列表风格统一。
使用 [field:info/] 灵活,可截取正文。 可能破坏HTML标签,不推荐作为常规方法。 快速实现,且不介意样式可能出错的临时方案。
自定义列表模板 最推荐,灵活、可控,针对性强。 需要创建多个文件,并手动为每个栏目指定。 大多数商业网站或结构复杂的网站,需要不同栏目不同样式。

对于大多数用户来说,从方法一开始尝试是最直接的,如果发现需要更精细的控制,再转向方法三,这是最专业和规范的做法。

-- 展开阅读全文 --
头像
dede如何下载远程图片和资源?
« 上一篇 前天
为何织梦会员发布信息需先认证?
下一篇 » 前天

相关文章

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