dede专题文章列表如何调用与显示?

99ANYc3cd6
预计阅读时长 21 分钟
位置: 首页 DEDE建站 正文

我将从基本原理、实现步骤、常用技巧和常见问题四个方面来为你详细讲解。

dede专题文章列表
(图片来源网络,侵删)

基本原理

在 DedeCMS 中,专题列表页的实现依赖于两个核心部分:

  1. 专题模板:这是一个 HTML 模板文件,定义了专题页面的整体布局和样式,在这个模板中,你会使用 DedeCMS 的专题列表调用标签来动态地获取并显示属于该专题的所有文章。
  2. 专题列表调用标签:这是 DedeCMS 的专用标签,用于从数据库中查询并输出指定专题下的文章列表,最常用的标签是 {dede:arclist},但它需要通过特定的属性来限定专题范围。

核心流程

  1. 创建一个专题。
  2. 为该专题创建一个专门的模板文件(special_list.htm)。
  3. 在后台将这个模板文件与专题进行关联。
  4. 向专题中添加文章。
  5. 访问专题的 URL,DedeCMS 会自动使用关联的模板,并调用标签输出文章列表,最终生成一个完整的专题列表页。

实现步骤

步骤 1:创建专题

  1. 登录 DedeCMS 后台。
  2. 在左侧菜单栏找到 【专题】 -> 【专题管理】
  3. 点击 “增加专题” 按钮。
  4. 填写专题信息:
    • 专题名称:给专题起一个名字,2025年度最佳科技产品”。
    • 专题目录:这是专题页面的访问路径,tech-products-2025,URL 将会是 你的域名/special/tech-products-2025/
    • 专题模板这是关键一步,点击后面的“选择模板”按钮,选择你刚刚创建或准备好的专题列表模板(special_list.htm),如果这里不选,专题页面将无法正常显示列表。
    • 专题简介:填写专题的描述性文字。
    • 缩略图:上传专题的封面图。
    • 其他选项如专题属性、关联栏目等,根据需要填写。
  5. 点击“确定”保存专题。

步骤 2:创建专题列表模板

在你的模板目录(通常是 /templets/default/ 或你自定义的模板目录)下,创建一个新的 HTML 文件,special_list.htm

在这个文件中,你可以像制作普通网页一样进行 HTML 和 CSS 布局,文章列表部分,则使用 DedeCMS 的标签来调用。

dede专题文章列表
(图片来源网络,侵删)

一个简单的 special_list.htm 模板示例:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">{dede:field.title/} - {dede:global.cfg_webname/}</title>
    <link rel="stylesheet" href="/templets/default/css/style.css">
</head>
<body>
    <div class="header">...</div>
    <div class="main">
        <!-- 专题标题和简介 -->
        <div class="special-title">
            <h1>{dede:field.title/}</h1>
            <p>{dede:field.description function='htmlspecialchars(@me)'/}</p>
        </div>
        <!-- 文章列表开始 - 这是核心部分 -->
        <div class="article-list">
            {dede:arclist 
                titlelen='50' 
                row='20' 
                orderby='pubdate' 
                orderway='desc'
                typeid='' 
                channelid='-1'
                addfields='photo'
                }
                <div class="article-item">
                    <!-- 如果有缩略图则显示缩略图 -->
                    [field:picname runphp='yes']
                        if(@me != '') @me = '<div class="article-img"><img src="'.@me.'" alt="[field:title/]"></div>';
                        else @me = '';
                    [/field:picname]
                    <div class="article-info">
                        <h2><a href="[field:arcurl/]">[field:title/]</a></h2>
                        <p class="intro">[field:description function='cn_substr(@me, 150)'/]...</p>
                        <div class="meta">
                            <span>发布时间:[field:pubdate function='MyDate('Y-m-d', @me)'/]</span>
                            <span>点击:[field:click/]</span>
                        </div>
                    </div>
                </div>
            {/dede:arclist}
        </div>
        <!-- 分页标签 -->
        <div class="page">
            {dede:pagelist listsize='4'/}
        </div>
    </div>
    <div class="footer">...</div>
</body>
</html>

步骤 3:向专题添加文章

  1. 在后台进入 【专题】 -> 【专题管理】,找到你刚创建的专题,点击
  2. 管理页面,你可以:
    • 从本站文章添加:点击“选择文章”,在弹出的窗口中选择已有的文章,确定”即可将这些文章加入到专题中。
    • 远程采集/手动添加:也可以通过其他方式获取内容并添加进来。

步骤 4:访问专题页面

完成以上步骤后,直接在浏览器中访问你在步骤1中设置的专题目录对应的 URL,http://你的域名/special/tech-products-2025/,你就能看到一个包含所有已添加文章的专题列表页面了。


核心标签详解:{dede:arclist} 在专题中的使用

在专题模板中,{dede:arclist} 是调用文章列表的主力,为了限定只显示当前专题的文章,通常不需要特别复杂的属性,因为 DedeCMS 在解析时会自动根据当前专题的 ID 进行过滤。

常用属性说明:

dede专题文章列表
(图片来源网络,侵删)
属性名 作用 示例
row 显示的文章数量 row='10' 显示10篇文章
infolen 内容简介长度 infolen='200' 内容简介显示200字节
orderby 排序依据 orderby='hot' (按点击), orderby='pubdate' (按发布时间), orderby='scores' (按评论数)
orderway 排序方式 orderway='desc' (降序), orderway='asc' (升序)
typeid (重要)指定栏目ID,在专题中,通常留空 typeid='',表示显示所有加入专题的文章,无论它属于哪个栏目。 typeid='5' 只显示ID为5的栏目下的文章
channelid 指定模型ID。channelid='-1' 表示所有模型(文章、图集等)。 channelid='1' 只调用文章模型
addfields 调用附加字段,如果你的文章模型有自定义字段(如 author, photo),需要在这里声明才能使用。 addfields='photo,author'
idlist 指定文章ID列表,用于调用特定文章。 idlist='1,5,10'

特殊技巧:调用专题缩略图

在模板中,{dede:field.title/}{dede:field.description/} 用于调用专题本身的标题和简介,但如果想在列表页里也显示专题的封面图(作为头图),可以这样:

<!-- 在专题标题下方显示专题封面图 -->
{dede:field.image/}

常见问题与解决方法

问题:专题页面空白,或者只显示“专题内容”四个字。

原因

  • 最常见原因:创建专题时,没有在 “专题模板” 字段中选择或指定模板文件。
  • 模板文件路径错误,DedeCMS 找不到你的 special_list.htm 文件。
  • 模板文件中有致命的 PHP 或 HTML 错误,导致解析失败。

解决方法

  • 检查专题管理,确认模板选择正确。
  • 检查模板文件是否存在于正确的目录下。
  • 检查模板文件语法,可以暂时简化模板内容,看是否能正常显示,再逐步添加代码排查。

问题:{dede:arclist} 一篇文章都没有显示出来。

原因

  • 专题里确实没有添加任何文章。
  • typeid 属性设置错误,导致过滤掉了所有文章,在专题中,建议将 typeid 设为空。
  • 模板中的标签写错,例如拼写错误。

解决方法

  • 进入专题管理,确保至少添加了一篇文章。
  • 检查 {dede:arclist} 标签的 typeid 属性,尝试将其设为空。
  • 仔细核对标签语法。

问题:如何实现专题分页?

原因

  • 只使用了 {dede:arclist},但没有使用分页标签。

解决方法

  • {dede:arclist} 标签的后面,紧接着添加分页标签:

    {dede:arclist row='20' ...}
        <!-- 文章列表循环内容 -->
    {/dede:arclist}
    <!-- 分页代码 -->
    <div class="dede_pages">
        <ul>
            {dede:pagelist listsize='4'/}
        </ul>
    </div>
  • 注意:分页功能需要确保你的专题设置中,每页显示的文章数量(row)是有限的,并且文章总数超过了这个数量。

问题:专题列表页的样式很乱,如何美化?

解决方法: 这完全是 CSS 的工作,你需要为模板中的 HTML 元素编写 CSS 样式。 在上面的模板示例中,你可以为 .article-item, .article-img, .article-info 等类编写 CSS,来控制文章列表的布局、颜色、间距等,使其看起来更美观。

-- 展开阅读全文 --
头像
dede普通文章代码如何使用?
« 上一篇 04-17
typedef在C语言中到底该如何定义?
下一篇 » 04-17

相关文章

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

目录[+]