如何在DedeCMS中调用当前栏目的子栏目?

如何在DedeCMS中调用当前栏目的子栏目?
方法一:使用内置函数channelunit();方法二:通过标签`和属性rel=”subcate”`实现。

DedeCMS中,调用当前栏目的子栏目可以通过多种方法实现,以下是两种主要的方法:

方法一:使用dede:channel标签

1、基本语法

{dede:channel type='son' reid='顶级栏目ID' row='显示条数' noself='yes'}

要调用顶级栏目ID为49的子栏目,可以这样写:

     {dede:channel type='son' reid='49' row='99' noself='yes'}
     <a href="[field:typeurl/]" title="[field:typename/]">[field:typename/]</a>
     {/dede:channel}

2、参数说明

type='son':表示调用子栏目

reid='顶级栏目ID':指定顶级栏目的ID。

row='显示条数':指定要显示的子栏目数量。

noself='yes':不包含自身,即不包含顶级栏目本身。

3、示例代码

假设有一个顶级栏目“站长新闻”,其ID为3,要调用其下的子栏目,可以使用以下代码:

     {dede:channel type='son' reid='3' row='99' noself='yes'}
     <a href="[field:typeurl/]" title="[field:typename/]">[field:typename/]</a><br />
     {/dede:channel}

方法二:使用dede:sonchannel标签

1、基本语法

{dede:sonchannel}

     {dede:sonchannel}
     <a href='[field:typeurl/]'>[field:typename/]</a>
     {/dede:sonchannel}

2、参数说明

dede:sonchannel标签用于直接调用当前栏目的子栏目,不需要额外指定顶级栏目ID等参数。

3、示例代码

假设要调用当前栏目的子栏目,可以直接使用以下代码:

     {dede:sonchannel}
     <a href='[field:typeurl/]'>[field:typename/]</a>
     {/dede:sonchannel}

方法三:结合dede:channelartlist和dede:arclist标签调用子栏目及其文章

1、基本语法

{dede:channelartlist typeid='顶级栏目ID,子栏目ID' row='显示条数'}

{dede:arclist type='son' row='显示条数'}

2、示例代码

假设有一个顶级栏目“站长新闻”,其ID为3,要调用其下的子栏目及其文章,可以使用以下代码:

     {dede:channelartlist typeid='3,0' row='99'}
     <ul>
       {dede:arclist type='son' row='8'}
         <li><a href="[field:arcurl/]">[field:title/]</a></li>
       {/dede:arclist}
     </ul>
     {/dede:channelartlist}

相关问答FAQs

1、如何调用当前栏目的子栏目及其文章?

你可以使用{dede:channelartlist typeid='顶级栏目ID,子栏目ID' row='显示条数'}结合{dede:arclist type='son' row='显示条数'}标签来实现。

     {dede:channelartlist typeid='3,0' row='99'}
     <ul>
       {dede:arclist type='son' row='8'}
         <li><a href="[field:arcurl/]">[field:title/]</a></li>
       {/dede:arclist}
     </ul>
     {/dede:channelartlist}

2、如何在列表页或内容页调用同级栏目的文章?

你可以修改includetaglibchannelartlist.lib.php文件,添加type属性,然后在列表页或内容页使用{dede:channelartlist type='reid' row='5'}来调用。

     {dede:channelartlist type='reid' row='5'}
     底层循环代码
     {/dede:channelartlist}

下面是使用dedecms调用当前栏目的子栏目的两种方法的表格说明:

| 方法 | 描述 | 代码示例 |

| | | |

| 方法一:使用channel_archives.html | 通过channel_archives.html文件调用当前栏目的子栏目信息,并动态显示子栏目内容。 |


<?php
// 引入dedecms配置文件
include_once(DEDEINC.'/dedecms.php');
include_once(DEDEINC.'/channelunit.php');
// 获取当前栏目ID
$id = $cid;
// 获取当前栏目信息
$csql = "SELECT * FROM#@__arctype WHERE id='$id'";
$cquery = $dsql>query($csql);
$carr = $dsql>getOne($csql);
// 获取子栏目信息
$ssql = "SELECT * FROM#@__arctype WHERE pid='$id'";
$squery = $dsql>query($ssql);
while ($srow = $dsql>getOne($squery)) {
    // 显示子栏目信息
    echo "<li><a href='" . GetArchiveUrl($srow['id']) . "'>" . $srow['typename'] . "</a></li>";
}
?>

| 方法二:使用channeltype.php | 通过channeltype.php文件调用当前栏目的子栏目信息,并动态显示子栏目内容。 |


<?php
// 引入dedecms配置文件
include_once(DEDEINC.'/dedecms.php');
include_once(DEDEINC.'/channeltype.php');
// 获取当前栏目ID
$id = $cid;
// 获取当前栏目信息
$csql = "SELECT * FROM#@__arctype WHERE id='$id'";
$cquery = $dsql>query($csql);
$carr = $dsql>getOne($csql);
// 获取子栏目信息
$ssql = "SELECT * FROM#@__arctype WHERE pid='$id'";
$squery = $dsql>query($ssql);
while ($srow = $dsql>getOne($squery)) {
    // 显示子栏目信息
    echo "<li><a href='" . GetArchiveUrl($srow['id']) . "'>" . $srow['typename'] . "</a></li>";
}
?>

两种方法都可以实现调用当前栏目的子栏目信息,并动态显示子栏目内容,你可以根据自己的需求选择合适的方法。

原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1219544.html

本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。

(0)
未希新媒体运营
上一篇 2024-10-17 00:21
下一篇 2024-10-17 00:28

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

产品购买 QQ咨询 微信咨询 SEO优化
分享本页
返回顶部
云产品限时秒杀。精选云产品高防服务器,20M大带宽限量抢购 >>点击进入