知识问答
如何巧妙调用织梦导航栏中的顶级栏目、二级栏目和三级栏目?
{dede:channel type='top' }
,二级栏目用{dede:channel type='son' }
,三级栏目同样用{dede:channel type='son' }
。织梦导航栏的调用方法之顶级栏目、二级栏目及三级栏目
在织梦CMS(DEDECMS)中,导航栏的调用对于网站的结构和用户体验至关重要,通过合理设置和调用导航栏,可以有效地帮助用户快速找到所需信息,本文将介绍如何在织梦中调用顶级栏目、二级栏目及三级栏目的方法,并通过表格进行详细解析。
顶级栏目的调用
1、调用方法:
使用{dede:channel}
标签来调用顶级栏目。
示例代码:
{dede:channel type='top' currentstyle="<li class='thisclass'><a href='~typelink~'>~typename~</a> </li>"} <li><a href='[field:typeurl/]'>[field:typename/]</a></li> {/dede:channel}
2、参数说明:
typeid
:表示栏目ID,默认值为0。
reid
:表示上级栏目ID,默认值为0。
row
:表示调用栏目数,默认值为100。
col
:表示分多少列显示,默认为单列。
type
:表示栏目类型,可以是son(下级栏目)、self(同级栏目)或top(顶级栏目)。
currentstyle
:应用样式,可以根据需要自定义。
3、注意事项:
如果只想调用特定的顶级栏目,可以通过添加typeid='所要调用栏目的id'
来实现。
对于调用指定的栏目,可以使用以下标签:
{dede:type typeid='指定栏目的id'} <a href="[field:typelink /]">[field:typename /]</a> {/dede:type}
参数名 | 说明 | 默认值 |
typeid | 栏目ID | 0 |
reid | 上级栏目ID | 0 |
row | 调用栏目数 | 100 |
col | 分多少列显示 | 1 |
type | 栏目类型 | top |
currentstyle | 应用样式 | '' |
二级栏目的调用
1、调用方法:
使用{dede:channelartlist}
标签来调用带有二级子栏目的栏目。
示例代码:
{dede:channelartlist typeid='1,2,3,6,7,10,8,11' row='10'} <li class="tab dropdown"> <a id="{dede:field name='id'/}" href="{dede:field name='typeurl'/}" class="tablink arwlink"> {dede:field name='typename'/} </a> <ul class="subnav"> {dede:channel type='son' noself='yes'} <a href="[field:typelink/]">[field:typename/]</a> {/dede:channel} </ul> </li> {/dede:channelartlist}
2、参数说明:
typeid
:表示顶级栏目的ID。
row
:表示调用栏目数,默认值为10。
3、注意事项:
对于没有子栏目的顶级栏目,可以使用调用指定栏目的标签。
示例代码:
{dede:type typeid=‘指定栏目的id’} <li> <a href="[field:typelink /]">[field:typename /]</a> </li> {/dede:type}
参数名 | 说明 | 默认值 |
typeid | 顶级栏目的ID | |
row | 调用栏目数 | 10 |
三级栏目的调用
1、调用方法:
使用{dede:type}
和{dede:channelartlist}
标签来调用三级子栏目。
示例代码:
<li> <h3> {dede:type typeid='2'}<a href='[field:typelink/]' class="depth_1">[field:typename/]</a>{/dede:type} </h3> <ul class="children" style="display: none; "> {dede:channelartlist typeid='top' typeid='2'} <li> <h3 > <a href='{dede:field name='typeurl'/}' class="depth_2"> <span class="icon10"></span>{dede:field name='typename'/} </a> </h3> <ul> {dede:sql sql='select * from dede_arctype where reid=~id~ ORDER BY id limit 0,20'} <li><a href="[field:typedir function='str_replace("{cmspath}","",@me)'/]" class="depth_3">[field:typename/]</a></li> {/dede:sql} </ul> </li> {/dede:channelartlist} </ul> </li>
2、参数说明:
typeid
:表示子栏目所属的顶级栏目的ID。
limit
:表示起始三级栏目ID,显示栏目的条数。
3、注意事项:
确保SQL查询语句正确,以获取正确的三级栏目数据。
根据实际需求调整CSS样式,以适应网站设计。
参数名 | 说明 | 默认值 |
typeid | 子栏目所属的顶级栏目的ID | |
limit | 起始三级栏目ID,显示栏目的条数 |
FAQs常见问题解答
1、问题:如何调用当前顶级栏目及其子类?
答案:可以使用{dede:channelartlist}
标签来调用当前栏目及其子类,示例代码如下:
{dede:channelartlist typeid='@self' row='10' currentstyle='class="current";'} <li><a href="[field:typeurl/]" class="[field:currentstyle/]">{if @me != 1}[field:typename/]{else}首页{/if}</a></li> {/dede:channelartlist} {dede:channel type='son' currentstyle='class="current";' row='10' id='@me'} <li><a href="[field:typeurl/]" class="[field:currentstyle/]">{if @me != 1}[field:typename/]{else}首页{/if}</a></li> {/dede:channel}
2、问题:如何在导航栏中实现下拉菜单并调用当前栏目的子类?
答案:可以使用{dede:channel}
标签结合条件判断来实现下拉菜单,示例代码如下:
{dede:channel typeid='@self' row='1'} <li class="dropdown"> <a href="[field:typeurl/]" class="[field:currentstyle/]"> [field:typename/]<span class="caret"></span></a> {if $dsql>GetOne("select COUNT(*) FROM #@__arctype WHERE pid='@me'") > 0} <ul class="dropdownmenu"> {dede:channel type='son' row='10' id='@me'} <li><a href="[field:typeurl/]">[field:typename/]</a></li> {/dede:channel} </ul> {/if} </li> {/dede:channel}