织梦列表页如何跳转到对应文章页?

99ANYc3cd6
预计阅读时长 13 分钟
位置: 首页 织梦建站 正文
  1. 前端:如何点击列表页的文章链接跳转。
  2. 后端:织梦如何根据链接找到并显示对应的文章内容。

第一部分:前端 - 列表页的链接制作

在织梦的列表页模板中(通常是 list_article.htm),你需要使用一个特定的织梦标签来生成每篇文章的链接,这个标签就是 arcurl

织梦列表页到文章页
(图片来源网络,侵删)

核心标签:[field:arcurl/]

这个标签的作用就是获取当前文章的完整URL地址,你只需要把它放在 <a> 标签的 href 属性中即可。

完整的列表页循环代码示例

在列表页模板中,文章通常被包裹在一个循环标签 {dede:list}{dede:arclist} 中,下面是一个最常见的列表页文章项的写法:

{dede:list pagesize='10'}
  <li>
    <!-- [field:title/] 是文章标题 -->
    <a href="[field:arcurl/]" title="[field:title/]">[field:title/]</a>
    <!-- [field:pubdate function="MyDate('Y-m-d',@me)"/] 是发布日期 -->
    <span>[field:pubdate function="MyDate('Y-m-d',@me)"]</span>
    <!-- [field:description/] 是文章摘要 -->
    <p>[field:description/]...</p>
  </li>
{/dede:list}

代码解释:

  • {dede:list}: 开始一个循环,默认会列出当前栏目下的10篇文章(由 pagesize='10' 控制)。
  • [field:arcurl/]: 这是关键,它会为循环中的每一篇文章生成一个独一无二的链接,指向该文章的详情页。
  • [field:title/]: 获取文章的标题,用作链接显示的文字和 title 属性(鼠标悬停时显示)。
  • [field:pubdate ...]: 获取文章的发布日期,并用指定的格式(年-月-日)进行显示。
  • [field:description/]: 获取文章的摘要。

当你在浏览器中查看这个列表页时,织梦引擎会解析这些标签,对于一篇标题为“织梦教程”的文章,[field:arcurl/] 会被替换成类似 https://www.yourdomain.com/a/2025/123/456.html 这样的真实链接。

织梦列表页到文章页
(图片来源网络,侵删)

第二部分:后端 - 文章页的接收与显示

当用户点击列表页中的链接(https://www.yourdomain.com/a/2025/123/456.html)时,浏览器会向服务器发送这个请求,织梦的后端系统会处理这个请求并显示文章内容。

URL结构解析

织梦的URL结构通常是固定的,遵循 目录/年/月/文章ID.html 的模式。

  • a: 通常代表“文章”目录,这是在后台“核心” -> “频道设置” -> “文章频道” 中设置的。
  • 2025: 文章发布的年份。
  • 123: 文章发布的月份。
  • 456: 这是文章的唯一ID,非常重要。
  • .html: 伪静态后缀,看起来像静态页面,但实际上是动态的。

文章页模板

是由专门的模板文件来控制的,通常是 article_article.htm

在这个模板文件中,你使用不同的标签来获取当前正在被查看的那篇文章的详细信息。

织梦列表页到文章页
(图片来源网络,侵删)

article_article.htm 示例代码:

<h1>[field:title/]</h1>
<div class="info">
  发布时间:[field:pubdate function="MyDate('Y-m-d H:i:s',@me)"] &nbsp;&nbsp;
  来源:[field:source/] &nbsp;&nbsp;
  作者:[field:writer/] &nbsp;&nbsp;
  点击:[field:click/]
</div>
<div class="content">
  [field:body/]
</div>

代码解释:

  • [field:title/]: 获取当前文章
  • [field:pubdate ...]: 获取当前文章的发布日期。
  • [field:source/]: 获取文章来源。
  • [field:writer/]: 获取文章作者。
  • [field:click/]: 获取文章点击次数。
  • [field:body/]: 这是最核心的标签,它会获取文章的。

后端工作流程

当用户访问 https://www.yourdomain.com/a/2025/123/456.html 时,后台发生的事情如下:

  1. URL重写(伪静态):服务器上的 .htaccess (Apache) 或 web.config (IIS) 文件会将这个看似静态的URL重写为动态的 plus/view.php?arcID=456
  2. 核心文件处理plus/view.php 文件是文章页的入口,它接收 arcID 这个参数(在这里是 456)。
  3. 查询数据库view.php 根据接收到的 arcID (456) 去织梦的数据库中查询 dede_archives 这张表,找到ID为456的那篇文章的所有信息(标题、内容、发布时间等)。
  4. 加载模板:系统加载 article_article.htm 这个模板文件。
  5. 数据填充:织梦引擎将查询到的文章信息(标题、内容等)填充到模板文件中对应的 [field:xxx/] 标签里。
  6. 生成页面:将填充好数据并解析好的HTML代码发送给用户的浏览器,用户看到的就是完整的文章页面。

总结与常见问题

功能点 列表页 (list_article.htm) 文章页 (article_article.htm)
核心循环标签 {dede:list}{dede:arclist} 无循环,只处理单篇文章
文章链接标签 [field:arcurl/]
标签 [field:title/] [field:title/]
标签 [field:description/] ( [field:body/] (全文)
作用 循环列出多篇文章的摘要和链接 显示单篇文章的完整内容

常见问题排查:

  1. 点击列表页链接,404错误(页面不存在)

    • 原因1:伪静态未开启或配置错误,检查后台“系统” -> “系统基本参数” -> “是否启用伪静态”是否为“是”,并确保网站根目录下的 .htaccess 文件存在且内容正确。
    • 原因2:文章ID对应的文章已被删除或审核未通过。
    • 原因3:URL规则被修改,导致链接格式不正确。
  2. 点击链接后,打开的页面内容是列表页或其他错误页面

    • 原因:文章页模板文件 article_article.htm 可能不存在、路径错误,或者模板内容被严重破坏,导致无法正确解析。
  3. 文章页的 [field:body/] 不显示内容

    • 原因:最常见的原因是文章内容使用了自定义编辑器模型,而 article_article.htm 模板中仍然使用的是 [field:body/],对于自定义模型,你需要使用 [field:字段名/] 的形式来调用,[field:mycontent/]mycontent 是你在后台自定义的字段名)。

希望这个详细的解释能帮助你完全理解织梦从列表页到文章页的整个流程!

-- 展开阅读全文 --
头像
静态网站如何无缝接入织梦系统?
« 上一篇 04-30
织梦标签是什么?
下一篇 » 04-30

相关文章

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

目录[+]