核心思路
无论调用什么内容(文章列表、栏目名称、栏目链接等),核心思路都是使用织梦的标签,并通过 typeid 属性来指定你想要操作的栏目ID。

调用指定栏目的文章列表(最常用)
这是最常见的用法,比如在首页调用某个“新闻”栏目的最新文章。
标签代码
{dede:arclist typeid='栏目ID' titlelen='30' row='10'}
<li>
<a href="[field:arcurl/]">[field:title/]</a>
<span>[field:pubdate function="MyDate('Y-m-d',@me)"/]</span>
</li>
{/dede:arclist}
参数详解
typeid='栏目ID':这是最关键的参数,将'栏目ID'替换成你想要调用的栏目在后台的实际ID,要调用ID为5的栏目,就写成typeid='5'。titlelen='30'长度,截取30个字符。row='10':获取的文章数量,这里是10篇。[field:arcurl/]:文章的链接地址。[field:title/]:文章的标题。[field:pubdate function="MyDate('Y-m-d',@me)"/]:文章的发布日期,并通过函数格式化为年-月-日的格式。
示例
假设你有一个“产品中心”栏目,其ID为 8,你想要在前台首页显示这个栏目的最新5个产品。
<h2>产品中心</h2>
<ul>
{dede:arclist typeid='8' titlelen='40' row='5'}
<li>
<a href="[field:arcurl/]" title="[field:title/]">[field:title/]</a>
</li>
{dede:arclist}
</ul>
调用指定栏目的子栏目列表
有时候你需要显示某个栏目下的所有一级子栏目。
标签代码
{dede:channel typeid='父栏目ID' type='son'}
<li>
<a href="[field:typeurl/]">[field:typename/]</a>
</li>
{/dede:channel}
参数详解
typeid='父栏目ID':指定要获取其子栏目的父栏目ID。type='son':表示获取该栏目下的直接子栏目(一级栏目)。- 如果不加
type属性,默认是top,表示获取顶级栏目。 type='self',表示获取栏目本身(仅当栏目有列表页时有效)。
- 如果不加
[field:typeurl/]:栏目的链接地址。[field:typename/]:栏目的名称。
示例
假设你的“关于我们”栏目ID为 3,它下面有“公司简介”、“发展历程”、“联系我们”等子栏目,你想在“关于我们”的栏目页面上显示这些子栏目。

<div class="sub-nav">
<h3>更多内容</h3>
<ul>
{dede:channel typeid='3' type='son'}
<li><a href="[field:typeurl/]" title="[field:typename/]">[field:typename/]</a></li>
{/dede:channel}
</ul>
</div>
获取指定栏目的信息(名称、链接等)
如果你只想获取单个栏目的名称或链接,而不想列出文章。
标签代码
{dede:field name='typename'/}
如何与指定ID关联?
这个标签通常用在栏目模板(templets/plus/list_xxx.htm)中,当你后台为某个栏目(比如ID为5的栏目)选择了这个模板后,{dede:field name='typename'/} 自动就会输出ID为5的栏目的名称。
如果你想在首页或其他模板中强制指定调用某个ID的栏目名称,你需要结合 channel 标签的 noself 属性来实现一个技巧:
{dede:channel typeid='5' type='self' noself='yes'}
[field:typename/]
{/dede:channel}
typeid='5':指定栏目ID。type='self':表示获取栏目本身的信息。noself='yes':防止它循环输出(因为我们只需要一个结果),这里它只输出一次。
调用指定栏目及其子栏目的文章列表
这是一种非常实用的方法,比如你想调用“新闻中心”(ID为10)及其所有下级栏目(如“行业新闻”、“公司动态”)的文章。
标签代码
{dede:arclist typeid='10' row='15'}
<li>
<a href="[field:arcurl/]">[field:title/]</a>
<span>[field:pubdate function="MyDate('Y-m-d',@me)"/]</span>
</li>
{/dede:arclist}
关键点
这里的关键在于 typeid 属性,当你给 typeid 赋值一个父栏目的ID时,{dede:arclist} 标签会自动包含其所有子栏目的文章,你不需要做任何特殊设置,织梦会自动处理。
示例
调用ID为 10 的“新闻中心”及其所有子栏目的最新15篇文章。
<h2>全部新闻</h2>
<ul class="news-list">
{dede:arclist typeid='10' row='15' titlelen='50'}
<li>
<a href="[field:arcurl/]" title="[field:title/]">[field:title/]</a>
<em>[field:pubdate function="MyDate('m-d',@me)"/]</em>
</li>
{dede:arclist}
</ul>
总结与注意事项
-
如何找到栏目ID? 登录织梦后台,点击【栏目管理】,鼠标移动到任意栏目名称上,浏览器左下角状态栏会显示该栏目的编辑链接,如
dede/typedit.php?id=5,其中的5就是该栏目的ID。 -
权限问题 确保你调用栏目的模板文件,对该栏目的内容有读取权限,通常模板文件的权限是全局的,但了解这一点有助于排查问题。
-
缓存问题 织梦有强大的缓存机制,如果你修改了代码但前台没有立即生效,请去后台【系统】->【一键更新网站】->【更新HTML】或【更新缓存】,然后刷新前台页面。
-
标签嵌套 织梦标签可以嵌套使用,例如在
{dede:channel}循环内部再使用{dede:arclist}来调用每个子栏目的文章。
希望这份详细的指南能帮助你掌握在织梦中调用指定栏目ID的各种方法!
