温馨提醒
如果文章内容或图片资源失效,请留言反馈,我们会及时处理,谢谢
本文最后更新于2023年8月14日,已超过 180天没有更新
分享2种方法获取织梦所有栏目一级二级三级和无限级栏目输出(下面涉及的表前缀改成你自己的)
1、一级、二级、三级、四级标签嵌套法
<ul> {dede:channelartlist row=7 typeid=top} <!-- 顶级 --> <li class="top"> <a href="{dede:field.typeurl/}" >{dede:field name='typename'/}</a> <ul class="sub"> {dede:channel type=son noself=yes} <!-- 二级 --> <li> <a href="[field:typeurl/]" title="[field:typename/]">[field:typename/]</a> <ul> <!-- 三级 --> [field:id runphp=yes] global $dsql; $sql = "Select id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath FROM `#@__arctype` WHERE reid=@me And ishidden<>1 order by sortrank asc limit 0,10"; $dsql->SetQuery($sql); $dsql->Execute('t'); $result = ''; while($row = $dsql->GetArray('t')) { $typename = $row['typename']; $typeurl = GetOneTypeUrlA($row); $result .= "<li><a href='{$typeurl}'>{$typename}</a></li>"; } @me = $result; [/field:id] </ul> </li> {/dede:channel} </ul> </li> {/dede:channelartlist} </ul>
上面的是输出到三级栏目,如果需要四级栏目可以这样修改三级四级
<!-- 三级/四级 --> [field:id runphp=yes] global $dsql; $sql = "Select id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath FROM `#@__arctype` WHERE reid=@me And ishidden<>1 order by sortrank asc limit 0,10"; $dsql->SetQuery($sql); $dsql->Execute('t'); $result = ''; while($row = $dsql->GetArray('t')) { $row['typeurl'] = GetOneTypeUrlA($row); $result .= "<a href='{$row[typeurl]}'>{$row[typename]}</a>"; //四级 $nsql = "Select id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath FROM `#@__arctype` WHERE reid=$row[id] And ishidden<>1 order by sortrank asc limit 0,10"; $dsql->SetQuery($nsql); $dsql->Execute('n'); while($nrow = $dsql->GetArray('n')) { $nrow['typeurl'] = GetOneTypeUrlA($nrow); $result .= "<a href='{$nrow[typeurl]}'>{$nrow[typename]}</a>"; } } @me = $result; [/field:id]
2、无限级栏目无限分类自定义函数递归法,在 include/extend.func.php 最下面添加
/** * 取出所有分类 * @param int $channel 频道ID * @return string * 调用{dede:global.getalltype function='getalltype()'/} */ function getalltype($channel=0,$line=10) { $line = empty($line) ? 10 : $line; global $dsql,$result; $dsql->SetQuery("SELECT id,typename,typenamedir,typelitpic,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath FROM `#@__arctype` WHERE reid='$channel' And ishidden<>1 order by sortrank asc limit 0, $line "); $dsql->Execute($channel); if($dsql->GetTotalRow($channel)>0) { $result .= "<ul>\r\n"; while($row = $dsql->GetArray($channel)) { $id = $row['id']; $typename = $row['typename']; $typelink = GetOneTypeUrlA($row); $result .= " <li>\r\n"; $result .= " <a href='{$typelink}' target='_blank'>{$typename}</a>\r\n"; getalltype($id,$line); $result .= " </li>\r\n"; } $result .= "</ul>\r\n"; } return $result; }
前台模板调用标签
{dede:global.getalltype function='getalltype()'/}
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
评论0+