dede如何调用指定二级栏目的内容?

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

核心思路

  1. 找到目标二级栏目的ID:这是最关键的一步,你需要在后台“栏目管理”中找到你想要调用的那个二级栏目的ID号。
  2. 使用 channelget 标签调用栏目本身的信息(如栏目名称、栏目链接等)。
  3. 使用 arclist 标签调用该栏目下的文章列表:通过 typeid 属性指定你找到的栏目ID。

调用指定ID的二级栏目及其文章列表(最常用)

这是最直接的方法,适用于你知道确切栏目ID的情况。

dede调用指定二级栏目内容
(图片来源网络,侵删)

第1步:找到栏目ID

  1. 登录你的DedeCMS后台。
  2. 点击顶部菜单的“核心” -> “栏目管理”。
  3. 在栏目列表中,找到你想要调用的那个二级栏目
  4. 将鼠标光标悬停在该栏目名称上,浏览器左下角会显示链接,如 dede/catalog_edit.php?cid=XX,其中的 XX 就是这个栏目的ID,记下这个ID号。

第2步:在模板文件中添加调用代码

假设你要在首页 index.htm 的某个位置调用这个ID为 XX 的二级栏目。

示例:调用栏目名称、链接和文章列表

{dede:channel type='self' typeid='XX'}
    <h2><a href="[field:typelink/]">[field:typename/]</a></h2>
{/dede:channel}
<ul>
    {dede:arclist typeid='XX' 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}
</ul>

代码详解:

  1. {dede:channel type='self' typeid='XX'}

    • typeid='XX':这里填入你刚刚找到的栏目ID。
    • type='self':表示只调用当前栏目本身(也就是ID为XX的二级栏目),如果不加这个,可能会调用上级栏目或所有同级栏目,造成混乱,推荐加上。
    • [field:typelink/]:输出栏目的完整链接地址。
    • [field:typename/]:输出栏目的名称。
  2. {dede:arclist typeid='XX' titlelen='30' row='10'}

    dede调用指定二级栏目内容
    (图片来源网络,侵删)
    • typeid='XX'核心参数,指定文章列表所属的栏目ID,同样填入你找到的ID。
    • titlelen='30':截取文章标题的字符长度,30个字符。
    • row='10':获取文章的数量,这里设置为10篇。
    • [field:arcurl/]:输出文章的链接地址。
    • [field:title/]:输出文章的标题。
    • [field:pubdate function="MyDate('Y-m-d', @me)"/]:输出文章的发布日期,并用 MyDate 函数格式化为 年-月-日 的格式。

调用当前栏目下的所有二级栏目及其文章列表

如果你想在某个一级栏目页(如“新闻中心”),显示它下面所有二级栏目(如“行业新闻”、“公司动态”)的列表和文章。

场景:

  • 一级栏目:“新闻中心” (ID: 5)
  • 二级栏目1:“行业新闻” (ID: 6)
  • 二级栏目2:“公司动态” (ID: 7)

你希望在“新闻中心”的页面,同时展示“行业新闻”和“公司动态”的内容。

模板代码:

在一级栏目模板文件(如 templets/default/ News/index.htm)中,使用 {dede:channel} 循环遍历所有子栏目,然后在内部嵌套 arclist 调用每个子栏目的文章。

<h1>新闻中心</h1>
{dede:channel type='son' typeid='5'}
    <div class="sub-column">
        <h3><a href="[field:typelink/]">[field:typename/]</a></h3>
        <ul>
            {dede:arclist typeid='[field:id]' titlelen='26' row='5'}
                <li><a href="[field:arcurl/]">[field:title/]</a></li>
            {/dede:arclist}
        </ul>
    </div>
{/dede:channel}

代码详解:

  1. {dede:channel type='son' typeid='5'}

    • typeid='5':这里填入一级栏目“新闻中心”的ID
    • type='son':表示调用该ID栏目的所有直接子栏目(也就是所有二级栏目)。
    • 这个标签会循环执行,每次循环输出一个二级栏目的信息。
  2. {dede:arclist typeid='[field:id]' titlelen='26' row='5'}

    • typeid='[field:id]':这里是技巧所在。[field:id] 会获取到外层 {dede:channel} 循环中当前栏目的ID,也就是说,当循环到“行业新闻”时,[field:id] 的值就是 6;当循环到“公司动态”时,它的值就是 7,这样就实现了动态调用每个子栏目的文章。
    • row='5':每个二级栏目下只显示5篇文章。

常用属性和函数速查表

属性/函数 说明
{dede:channel} typeid='ID' 指定栏目ID
type='self' 调用指定栏目本身
type='son' 调用指定栏目的所有子栏目
[field:typename/] 栏目名称
[field:typelink/] 栏目链接
{dede:arclist} typeid='ID' 指定文章所属栏目ID
row='N' 调用文章数量
orderby='hot' 按热度排序
orderway='desc' 降序排列
通用 [field:id/] ID
[field:title/]
[field:arcurl/] 文章链接
[field:pubdate/] 发布时间(时间戳)
function="MyDate('Y-m-d', @me)" 格式化时间戳为日期
  • 调用单个已知ID的二级栏目:直接使用 typeid='XX'channelarclist 标签中指定ID。
  • 调用一个一级栏目下的所有二级栏目:使用 type='son'channel 标环,并在内部的 arclist 中用 [field:id] 动态获取子栏目ID。

希望这些详细的解释和示例能帮助你成功调用指定的二级栏目内容!

-- 展开阅读全文 --
头像
织梦图标修改为何无效?
« 上一篇 01-14
本地电脑如何安装织梦?
下一篇 » 01-14

相关文章

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

目录[+]