在循环文章的 {dede:list} 标签内,只调用你需要的字段(如标题、缩略图、简介等),并移除或注释掉调用文章内容(body 或 content)的标签。
下面我将提供几种常见的实现方法和详细的步骤。
最直接的方法 - 修改默认列表模板
这是最常用、最直接的方法,你需要编辑你当前使用的栏目列表模板文件。
操作步骤:
-
登录织梦后台:使用你的管理员账号登录织梦CMS后台。
-
找到模板文件:
- 在后台左侧菜单,找到 【模板】 -> 【默认模板管理】。
- 在模板列表中,找到你当前网站正在使用的 【栏目列表页模板】,这个文件通常位于
/templets/default/目录下,文件名一般是list_article.htm。 - 点击 【修改】 按钮。
-
编辑模板代码:
- 在打开的模板代码编辑器中,找到
{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} - 保存模板:点击编辑器下方的 【保存】 按钮。
- 在打开的模板代码编辑器中,找到
-
更新栏目缓存:
- 为了让修改立即生效,请务必在后台更新缓存。
- 进入 【系统】 -> 【一键更新网站】 -> 【更新栏目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/],这样更可控、更安全。
自定义列表模板(推荐)
如果你的网站有多个栏目,并且希望某些栏目列表显示摘要,某些栏目列表不显示任何内容(只显示标题),最好的方法是为不同的栏目设置不同的列表模板。
操作步骤:
-
创建多个模板文件:
-
复制 /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}
-
为栏目指定模板:
- 在织梦后台,进入 【核心】 -> 【栏目管理】。
- 点击你想要修改的栏目名称,进入栏目编辑页面。
- 在“栏目内容”设置区域,找到 【列表模板】 选项。
- 从下拉菜单中选择你刚刚创建的模板文件,
list_summary.htm 或 list_title.htm。
- 保存即可。
这种方法非常灵活,可以针对不同栏目实现完全不同的列表展示效果。
总结与建议
方法
优点
缺点
适用场景
修改默认模板
简单快速,一劳永逸。
会影响所有使用默认模板的栏目。
网站结构简单,所有栏目列表风格统一。
使用 [field:info/]
灵活,可截取正文。
可能破坏HTML标签,不推荐作为常规方法。
快速实现,且不介意样式可能出错的临时方案。
自定义列表模板
最推荐,灵活、可控,针对性强。
需要创建多个文件,并手动为每个栏目指定。
大多数商业网站或结构复杂的网站,需要不同栏目不同样式。
对于大多数用户来说,从方法一开始尝试是最直接的,如果发现需要更精细的控制,再转向方法三,这是最专业和规范的做法。
织梦提供了一个非常实用的标签 [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/],这样更可控、更安全。
自定义列表模板(推荐)
如果你的网站有多个栏目,并且希望某些栏目列表显示摘要,某些栏目列表不显示任何内容(只显示标题),最好的方法是为不同的栏目设置不同的列表模板。
操作步骤:
-
创建多个模板文件:
-
复制
/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}
-
-
为栏目指定模板:
- 在织梦后台,进入 【核心】 -> 【栏目管理】。
- 点击你想要修改的栏目名称,进入栏目编辑页面。
- 在“栏目内容”设置区域,找到 【列表模板】 选项。
- 从下拉菜单中选择你刚刚创建的模板文件,
list_summary.htm或list_title.htm。 - 保存即可。
这种方法非常灵活,可以针对不同栏目实现完全不同的列表展示效果。
总结与建议
| 方法 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|
| 修改默认模板 | 简单快速,一劳永逸。 | 会影响所有使用默认模板的栏目。 | 网站结构简单,所有栏目列表风格统一。 |
使用 [field:info/] |
灵活,可截取正文。 | 可能破坏HTML标签,不推荐作为常规方法。 | 快速实现,且不介意样式可能出错的临时方案。 |
| 自定义列表模板 | 最推荐,灵活、可控,针对性强。 | 需要创建多个文件,并手动为每个栏目指定。 | 大多数商业网站或结构复杂的网站,需要不同栏目不同样式。 |
对于大多数用户来说,从方法一开始尝试是最直接的,如果发现需要更精细的控制,再转向方法三,这是最专业和规范的做法。
