织梦调用指定栏目id

99ANYc3cd6
预计阅读时长 14 分钟
位置: 首页 织梦建站 正文

核心思路

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

织梦调用指定栏目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,它下面有“公司简介”、“发展历程”、“联系我们”等子栏目,你想在“关于我们”的栏目页面上显示这些子栏目。

织梦调用指定栏目id
(图片来源网络,侵删)
<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>

总结与注意事项

  1. 如何找到栏目ID? 登录织梦后台,点击【栏目管理】,鼠标移动到任意栏目名称上,浏览器左下角状态栏会显示该栏目的编辑链接,如 dede/typedit.php?id=5,其中的 5 就是该栏目的ID。

  2. 权限问题 确保你调用栏目的模板文件,对该栏目的内容有读取权限,通常模板文件的权限是全局的,但了解这一点有助于排查问题。

  3. 缓存问题 织梦有强大的缓存机制,如果你修改了代码但前台没有立即生效,请去后台【系统】->【一键更新网站】->【更新HTML】或【更新缓存】,然后刷新前台页面。

  4. 标签嵌套 织梦标签可以嵌套使用,例如在 {dede:channel} 循环内部再使用 {dede:arclist} 来调用每个子栏目的文章。

希望这份详细的指南能帮助你掌握在织梦中调用指定栏目ID的各种方法!

-- 展开阅读全文 --
头像
c语言程序设计教程课后习题
« 上一篇 今天
织梦源码安装环境怎么搭?
下一篇 » 今天

相关文章

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

目录[+]