织梦栏目页如何显示文章内容?

99ANYc3cd6
预计阅读时长 13 分钟
位置: 首页 织梦建站 正文
  1. 推荐方法:修改模板文件(最灵活、最常用)
  2. 备用方法:修改PHP程序文件(更底层,不推荐新手轻易尝试)

修改模板文件(推荐)

这是最标准、最安全也是最灵活的方法,我们只需要修改栏目页的模板文件即可。

织梦栏目页显示文章内容
(图片来源网络,侵删)

步骤 1:定位并复制栏目页模板

  1. 登录织梦后台。
  2. 进入【模板】-> 【模板管理】
  3. 在左侧选择你需要修改的栏目所在的 【模板文件目录】(通常是你使用的模板文件夹名)。
  4. 在右侧的文件列表中,找到 list_栏目ID.htm 这个文件,如果你的栏目ID是 1,那么文件就是 list_1.htm
  5. 点击这个文件后面的【修改】按钮,进入模板编辑器。

重要提示:为了安全起见,建议你先复制一份 list_栏目ID.htm 文件,并重命名为 list_栏目ID_new.htm,我们先在新文件上操作,确认无误后再替换原文件。

步骤 2:修改模板代码

默认的 list_栏目ID.htm 文件内容通常是这样的:

{dede:list pagesize='10'}
    <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 listsize='4' listitem='info,index,end,pre,next,pageno'/}</ul>
</div>

我们的目标是把 [field:title/] 替换成文章内容的摘要或全文。

方案 A:显示文章摘要(推荐)

织梦在发布文章时,可以填写“,这个字段是专门为列表页设计的,既包含了核心内容,又不会太长。

织梦栏目页显示文章内容
(图片来源网络,侵删)
  1. 找到 <a href='[field:arcurl/]'>[field:title/]</a> 这一行。

  2. 将其修改为:

    <a href='[field:arcurl/]'>[field:title/]</a>
    <div class="intro">
        [field:description function='cn_substr(@me, 200)'/]...
    </div>

    代码解释

    • [field:description/]:调用文章摘要。
    • function='cn_substr(@me, 200)':这是一个系统函数,表示对摘要内容进行截取,只显示前200个字符,你可以根据需要调整 200 这个数值。
    • 在摘要末尾加上省略号,表示内容未完。

方案 B:显示文章内容(全文)

如果你想让栏目页直接显示文章的,可以使用 [field:body/][field:content/]

  1. 同样,找到 <a href='[field:arcurl/]'>[field:title/]</a> 这一行。

  2. 将其修改为:

    <a href='[field:arcurl/]'>[field:title/]</a>
    <div class="content">
        [field:body/]
    </div>

    代码解释

    • [field:body/]:调用文章的全文内容。

⚠️ 重要警告

  • 性能问题:如果这个栏目下的文章非常多,每次加载栏目页时,系统都需要读取所有文章的全文内容,这会严重拖慢网站速度,并对数据库造成很大压力。
  • 样式混乱中的图片、样式等可能会与栏目页本身的样式冲突,导致页面布局错乱。

强烈建议优先使用方案A(显示摘要)。 如果你坚持使用方案B,请确保该栏目下的文章数量非常少(例如少于20篇)。

步骤 3:添加CSS样式

为了让显示出来的摘要或内容更美观,你需要在模板的 <head> 部分或外部的CSS文件中添加一些样式。

在你的 list_栏目ID.htm 文件的 <head> 标签内添加:

<style>
    .intro {
        color: #666;
        margin-top: 5px;
        line-height: 1.6;
        font-size: 14px;
    }
    .content {
        color: #333;
        margin-top: 10px;
        line-height: 1.8;
        font-size: 15px;
    }
</style>

步骤 4:更新并生成

  1. 在模板编辑器中保存你修改后的文件。
  2. 进入【生成】-> 【更新栏目HTML】
  3. 选择你修改的那个栏目,点击“开始生成”。
  4. 生成完毕后,刷新你的网站栏目页,就能看到效果了。

修改PHP程序文件(不推荐)

这种方法通过修改核心PHP文件来实现,效果与方法一类似,但会绕过模板系统,不利于后期维护和升级。

涉及文件

/include/arc.listview.class.php

修改步骤

  1. 通过FTP或服务器的文件管理器,找到并下载 /include/arc.listview.class.php 文件到本地。

  2. 用代码编辑器(如VS Code, Sublime Text, Dreamweaver)打开它。

  3. 按快捷键 Ctrl+F 搜索 ParseTemplet() 函数。

  4. 在这个函数内,找到类似 $this->dtp->LoadTemplate($tempfile); 的代码。

  5. 在这行代码后面,添加以下代码:

    // 在列表页显示文章内容
    $this->dtp->Assign('body', $this->Fields['body']);
  6. 保存并上传覆盖服务器上的原文件。

  7. 进入织梦后台,【生成】-> 【更新栏目HTML】,重新生成你的栏目页。

工作原理:这段代码强制将当前文章(在循环中的那篇)的 body 字段内容,赋值给了模板里的 [field:body/]

为什么不推荐

  • 修改核心文件:织梦升级时,这个文件会被覆盖,你的修改会丢失,需要重新修改。
  • 灵活性差:你无法通过简单地修改模板来控制显示摘要还是全文,必须再次修改这个PHP文件。
  • 风险较高:错误的代码修改可能导致整个栏目页甚至网站无法访问。

总结与建议

特性 方法一 (修改模板) 方法二 (修改PHP)
推荐度 ⭐⭐⭐⭐⭐ (强烈推荐) ⭐ (仅作为最后手段)
灵活性 极高,可随时通过模板调整样式和内容 极低,修改后需重新生成才能生效
维护性 ,不涉及核心代码,升级无忧 ,升级后代码会丢失,需重复修改
安全性 ,不触碰底层文件 ,误操作可能导致网站崩溃
适用场景 所有情况,尤其是需要显示摘要或对样式有要求时 特殊需求,且无法通过模板实现时

对于绝大多数用户来说,请务必选择方法一,它完全能满足你的需求,并且是织梦官方支持和推荐的最佳实践。

-- 展开阅读全文 --
头像
dede seotitle长短多少才合适?
« 上一篇 01-08
C语言如何实现GB2312转UTF-8编码?
下一篇 » 01-08

相关文章

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