dede如何单独调用指定栏目的信息?

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

使用 GetOneTypeArt 标签(推荐,最常用)

这是调用单个栏目文章列表最核心、最灵活的方法,它可以获取指定栏目下的文章列表,并支持非常多的自定义参数。

dede调用单个栏目
(图片来源网络,侵删)

基本语法

{dede:arclist typeid='栏目ID' titlelen='30' row='10'}
    <a href="[field:arcurl/]">[field:title/]</a>
    <br>
{/dede:arclist}

注意: 虽然标签名是 arclist (文章列表),但当它带有 typeid 属性时,它就变成了获取指定栏目下的文章列表。

标签属性详解

属性名 含义 示例
typeid (必填) 要获取文章的栏目ID,你可以在后台“栏目管理”中查看每个栏目的ID。 typeid='1'
row 调用文章的数量。 row='5' (调用5条)
infolen 内容简介长度。 infolen='100'
orderby 排序方式,常用值:pubdate (发布时间,默认)、click (点击量)、id (文章ID)。 orderby='click'
orderway 排序方向。desc (降序,默认)、asc (升序)。 orderway='asc'
channelid 模型ID,默认为1 (文章),如果是其他模型,需要填写对应的ID。 channelid='1'
idlist 调用指定ID的文章,多个ID用逗号隔开。typeid 属性无效。 idlist='10,22,35'
subday 调用指定天数内发布的文章。 subday='7' (调用最近7天发布的文章)

完整示例

假设我们要调用 ID 为 2 的“产品中心”栏目下的 8 篇文章,按发布时间倒序排列,标题显示 25 个字符。

<h2>产品中心</h2>
<ul>
    {dede:arclist typeid='2' row='8' titlelen='25' orderby='pubdate' orderway='desc'}
        <li>
            <a href="[field:arcurl/]" title="[field:title/]">[field:title/]</a>
            <span class="date">([field:pubdate function="MyDate('Y-m-d', @me)"/])</span>
        </li>
    {/dede:arclist}
</ul>

字段说明:

  • [field:arcurl/]: 文章的完整链接地址。
  • [field:title/]: 文章标题。
  • [field:pubdate function="MyDate('Y-m-d', @me)"/]: 文章发布时间,MyDate 是 DedeCMS 的日期格式化函数,'Y-m-d' 是输出格式 (年-月-日)。

使用 type 标签调用栏目本身信息

如果你只想获取栏目本身的信息,比如栏目名称、栏目简介、栏目链接等,而不想获取该栏目下的文章列表,那么应该使用 type

基本语法

{dede:type typeid='栏目ID'}
    <a href="[field:typeurl/]">[field:typename/]</a>
    <p>[field:description/]</p>
{/dede:type}

标签属性与字段

属性/字段 含义
typeid (必填) 栏目的ID。
[field:typeurl/] 该栏目的链接地址。
[field:typename/] 该栏目的名称。
[field:description/] 该栏目的简介。
[field:seotitle/] 该栏目的SEO标题。
[field:keyword/] 该栏目的关键词。

完整示例

假设我们要在页面上显示 ID 为 3 的“关于我们”栏目的名称和简介。

dede调用单个栏目
(图片来源网络,侵删)
<div class="about-us">
    <h3>{dede:type typeid='3'}[field:typename]{/dede:type}</h3>
    <p>{dede:type typeid='3'}[field:description]{/dede:type}</p>
</div>

注意: 如果栏目简介支持HTML代码,并且你希望保留格式,可以使用 [field:description function='htmlspecialchars(@me)'/] 来避免HTML标签被转义。


结合 SQL 查询(高级用法)

arclist 标签无法满足复杂的查询需求时(跨栏目查询、按特定自定义字段查询等),可以直接使用 DedeCMS 的 sql 标签执行自定义的 SQL 语句。

⚠️ 警告: 此方法需要对数据库和SQL语句有一定了解,使用不当可能导致网站出错或安全风险,请谨慎使用。

基本语法

{dede:sql sql='SELECT arc.id, arc.title, arc.litpic, tp.typename FROM dede_archives arc LEFT JOIN dede_arctype tp ON arc.typeid = tp.id WHERE arc.typeid = 栏目ID LIMIT 10'}
    <a href="[field:arcurl/]">[field:title/]</a>
{/dede:sql}

示例:调用 ID 为 2 的栏目下的文章,并显示缩略图。

{dede:sql sql='SELECT id, title, litpic FROM dede_archives WHERE typeid = 2 AND litpic != "" ORDER BY id DESC LIMIT 6'}
    <li>
        <a href="[field:arcurl/]" title="[field:title/]">
            <img src="[field:litpic/]" alt="[field:title/]">
            <span>[field:title/]</span>
        </a>
    </li>
{/dede:sql}

说明:

dede调用单个栏目
(图片来源网络,侵删)
  • dede_archives 是存储文章核心数据的表。
  • litpic 是缩略图字段。
  • [field:arcurl/][field:title/]sql 标签中依然可用,DedeCMS 会自动处理。

如何获取栏目ID?

这是最关键的一步,获取栏目ID有两种常用方法:

  1. 后台查看法

    • 登录 DedeCMS 后台。
    • 进入「栏目管理」。
    • 将鼠标移动到你想要调用的栏目名称上,浏览器左下角状态栏会显示该栏目的编辑链接,.../catalog_do.php?cid=2&dopost=edit,其中的 cid=2 就是这个栏目的ID。
  2. 页面源码查看法(推荐)

    • 在网站前台,找到你想要调用的栏目。
    • 右键点击该栏目的链接,选择“在新标签页中打开”或直接查看链接地址。
    • 链接地址会类似于 https://www.yoursite.com/a/list-2.html,其中的 list-2.html2 就是该栏目的ID。
需求 推荐标签 优点
调用某个栏目的文章列表 {dede:arclist typeid='ID'}...{/dede:arclist} 最常用、最灵活、性能最好
调用栏目本身的名称、简介等 {dede:type typeid='ID'}...{/dede:type} 专门用于获取栏目信息,代码简洁
复杂的、自定义的查询 {dede:sql sql='...'}...{/dede:sql} 功能最强大,但需要SQL知识,有风险

对于绝大多数情况,方法一 (arclist) 就足以满足调用单个栏目文章的需求,希望这个详细的解释能帮助你!

-- 展开阅读全文 --
头像
织梦手机端仿站教程,新手如何快速上手?
« 上一篇 04-22
dede企业模板下载哪里有?
下一篇 » 04-22
取消
微信二维码
支付宝二维码