{dede:channelartlist typeid='1'}
{dede:field name='typename'/}
{dede:sql sql='Select * from dede_arctype where reid=~id~'}
[field:typename/]
{/dede:sql}
{/dede:channelartlist}
标签解释如下:
- `channelartlist`:用于循环列出指定类型的一级栏目。
- `typeid='1'`:表示获取ID为1的一级栏目及其子栏目。如果需要获取多个一级栏目,可以调整此参数或移除以获取全部。
- `sql='Select * from dede_arctype where reid=~id~'`:通过SQL语句查询当前一级栏目的子栏目。`reid=~id~`确保只获取当前一级栏目的子栏目,而不会误取其他栏目内容。
通过上述代码,可以有效解决DedeCMS中二级菜单显示异常的问题。此外,这种方法还具有以下优点:
- 灵活性更高:可以根据具体需求调整SQL语句,获取更精确的数据。
- 结构清晰:避免了因标签嵌套导致的逻辑混乱问题。
- 兼容性强:适用于大多数基于DedeCMS开发的网站。