织梦cms 当前栏目

织梦CMS如何判断和获取当前栏目?

在织梦CMS模板开发中,获取"当前栏目"是一个重要需求。无论是高亮导航、显示当前位置、还是调用当前栏目的相关信息,都需要准确判断用户当前所在的栏目。

一、当前栏目高亮(currentstyle)

织梦CMS标签提供了currentstyle参数来实现当前栏目高亮:

{dede:channel type='top' currentstyle="<li class='active'><a href='~typelink~'>~typename~</a></li>"}
<li><a href='[field:typelink/]'>[field:typename/]</a></li>
{/dede:channel}

系统会自动判断用户当前所在的栏目,并将currentstyle参数中定义的格式应用到该栏目上。~typelink~~typename~会自动替换为实际值。

二、在列表页获取当前栏目信息

{dede:field name='typename'/}      —— 当前栏目名称
{dede:field name='id'/}               —— 当前栏目ID
{dede:field name='typeurl'/}          —— 当前栏目URL
{dede:field name='seotitle'/}         —— 当前栏目SEO标题
{dede:field name='keywords'/}         —— 当前栏目关键词
{dede:field name='description'/}      —— 当前栏目描述
{dede:field name='position'/}         —— 当前栏目面包屑导航

三、在内容页获取当前文章所属栏目

{dede:field name='typeid'/}          —— 所属栏目ID
{dede:field name='typename'/}         —— 所属栏目名称
{dede:field name='typeurl'/}          —— 所属栏目URL

四、通过PHP判断当前栏目

{dede:php}
$currentId=$refObj->TypeLink->TypeInfos['id'];
if($currentId==5){
echo '当前为指定栏目';
}
{/dede:php}

五、当前栏目的子栏目调用

{dede:channel type='son' row='10'}
<li><a href="[field:typelink/]">[field:typename/]</a></li>
{/dede:channel}

在列表模板中使用type='son'(不指定typeid),系统会自动获取当前栏目的子栏目。

六、当前栏目的上级栏目

{dede:field name='position'/}

面包屑导航自动包含了从首页到当前栏目的完整层级路径。

七、判断是否有子栏目

{dede:channel type='son' row='1'}
[field:typename/] 有子栏目
{/dede:channel}

如果当前栏目有子栏目,上述代码会输出第一个子栏目的名称,借此可以判断子栏目是否存在。

技巧:在侧边栏中,可以先输出当前栏目的上级栏目,再列出该上级栏目下的所有子栏目,实现侧边导航的展开效果。