当前位置:首页 > 行业动态 > 正文

如何在织梦中使用channelartlist标签来循环显示子栏目?

是的,织梦(DedeCMS)可以使用 channelartlist 标签进行循环子栏目。

在织梦(DedeCMS)系统中,可以使用channelartlist 标签进行循环子栏目及其栏目的文档数据,这是 DedeCMS 系统中唯一一个支持标签嵌套的调用标签,以下是一些关于如何使用channelartlist 标签的基本用法和参数介绍:

如何在织梦中使用channelartlist标签来循环显示子栏目?  第1张

1、基本用法:

<div >
    {dede:channelartlist}
    <dl >
        <dt>
            <strong><a href="{dede:field name='typeurl'/}">{dede:field name='typename'/}</a></strong>
            <span ><a href="{dede:field name='typeurl'/}">更多...</a></span>
        </dt>
        <dd>
            <ul >
                {dede:arclist titlelen='60' row='8'}
                <li><span>[field:pubdate function="MyDate('md',@me)"/]</span><a href="[field:arcurl /]">[field:title /]</a></li>
                {/dede:arclist}
            </ul>
        </dd>
    </dl>
    {/dede:channelartlist}
</div>

2、参数简介:

typeid='0':限制上级栏目ID;也可以用top,支持“,”表示多个栏目。

row='20':循环的栏目数量,默认为20。

cacheid = '':标签缓存ID,一般为空。

需要注意的是,如果你只是将上述代码原封不动地复制粘贴到终极栏目页或内容页,是不会出现任何调用结果的,因为在标签channelartlist 中,当typeid 为空,则表示当前栏目,但是终极栏目列表和内容页是没有下级栏目的,所以就会出错!

3、调用实例:

在终极列表页或内容页,正确的调用方法应该是以下的:

{dede:channelartlist typeid='top'}

这里是typeid='top',这个top 值可以换为你想要的上级栏目ID,但绝对是不可以为空的,这个大家一定要注意!

4、栏目高亮、特效调用:

在该标签下,可以直接分别用{dede:field name='typename'/} 与{dede:field name='typeurl'/} 来表示栏目名称与栏目链接的,当然还有一些其它特殊的变量,这里也介绍一下,如:

{dede:field name='id'/} 与{dede:field name='typeid'/} 均表示循环中的栏目ID。

{dede:global name='itemindex'} 表示循环递增变量,从1开始。

{dede:global name='itemparity'} 表示循环魔法变量,单数为1,双数为2。

5、实现栏目高亮:

在channelartlist.lib.php 并没有自带,但通过以下DIY可实现让当前栏目进行高亮,方法(以 DedeCMS 5.6为例):

打开channelartlist.lib.php 文件,找到如下代码:

$pv>Fields['typeurl'] = GetOneTypeUrlA($typeids[$i]);

在其下一行加入以下代码:

if($typeids[$i]['id'] == $refObj>TypeLink>TypeInfos['id']){
    $pv>Fields['currentstyle'] = ' id="pic_focus"';
}else{
    $pv>Fields['currentstyle'] = '';
}

就可以在模板中进行使用{dede:field name='currentstyle'/} 进行调用了。

相关问答FAQs

问题一:如何在织梦(DedeCMS)中使用channelartlist 标签循环子栏目?

答:在织梦(DedeCMS)系统中,可以使用channelartlist 标签进行循环子栏目及其栏目的文档数据,这是 DedeCMS 系统中唯一一个支持标签嵌套的调用标签,基本用法如下:

<div >
    {dede:channelartlist}
    <dl >
        <dt>
            <strong><a href="{dede:field name='typeurl'/}">{dede:field name='typename'/}</a></strong>
            <span ><a href="{dede:field name='typeurl'/}">更多...</a></span>
        </dt>
        <dd>
            <ul >
                {dede:arclist titlelen='60' row='8'}
                <li><span>[field:pubdate function="MyDate('md',@me)"/]</span><a href="[field:arcurl /]">[field:title /]</a></li>
                {/dede:arclist}
            </ul>
        </dd>
    </dl>
    {/dede:channelartlist}
</div>

需要注意的是,如果你只是将上述代码原封不动地复制粘贴到终极栏目页或内容页,是不会出现任何调用结果的,因为在标签channelartlist 中,当typeid 为空,则表示当前栏目,但是终极栏目列表和内容页是没有下级栏目的,所以就会出错!

问题二:如何在织梦(DedeCMS)中实现栏目高亮?

答:在channelartlist.lib.php 并没有自带栏目高亮的功能,但可以通过以下DIY实现让当前栏目进行高亮,方法(以 DedeCMS 5.6为例):

打开channelartlist.lib.php 文件,找到如下代码:

$pv>Fields['typeurl'] = GetOneTypeUrlA($typeids[$i]);

在其下一行加入以下代码:

if($typeids[$i]['id'] == $refObj>TypeLink>TypeInfos['id']){
    $pv>Fields['currentstyle'] = ' id="pic_focus"';
}else{
    $pv>Fields['currentstyle'] = '';
}

就可以在模板中进行使用{dede:field name='currentstyle'/} 进行调用了。

子栏目名称 子栏目链接 子栏目描述
子栏目一 /category1/ 这是子栏目一的描述信息,提供有关内容的概述。
子栏目二 /category2/ 这是子栏目二的描述信息,提供有关内容的概述。
子栏目三 /category3/ 这是子栏目三的描述信息,提供有关内容的概述。
子栏目四 /category4/ 这是子栏目四的描述信息,提供有关内容的概述。
子栏目五 /category5/ 这是子栏目五的描述信息,提供有关内容的概述。

使用 channelartlist 标签循环子栏目示例:

<channelartlist>
    <channelart>
        <title>子栏目一</title>
        <link>/category1/</link>
        <description>这是子栏目一的描述信息,提供有关内容的概述。</description>
    </channelart>
    <channelart>
        <title>子栏目二</title>
        <link>/category2/</link>
        <description>这是子栏目二的描述信息,提供有关内容的概述。</description>
    </channelart>
    <channelart>
        <title>子栏目三</title>
        <link>/category3/</link>
        <description>这是子栏目三的描述信息,提供有关内容的概述。</description>
    </channelart>
    <channelart>
        <title>子栏目四</title>
        <link>/category4/</link>
        <description>这是子栏目四的描述信息,提供有关内容的概述。</description>
    </channelart>
    <channelart>
        <title>子栏目五</title>
        <link>/category5/</link>
        <description>这是子栏目五的描述信息,提供有关内容的概述。</description>
    </channelart>
</channelartlist>

在上述示例中,channelartlist 标签用于循环显示所有子栏目,每个channelart 标签代表一个子栏目,包含标题、链接和描述。

0