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