云主机测评网云主机测评网云主机测评网

云主机测评网
www.yunzhuji.net

如何在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>";
}
?>

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

打赏
版权声明:主机测评不销售、不代购、不提供任何支持,仅分享信息/测评(有时效性),自行辨别,请遵纪守法文明上网。
文章名称:《如何在DedeCMS中调用当前栏目的子栏目?》
文章链接:https://www.yunzhuji.net/internet/253420.html

评论

  • 验证码