在使用DedeCMS进行网站开发时,channelartlist标签是一个非常实用的工具,可以用来循环调用顶级栏目和子栏目。然而,许多用户发现该标签无法获取外部链接,这给制作包含外部链接的下拉菜单带来了困难。本文将为您详细介绍如何解决这一问题,并提供优化后的代码示例。
首先,我们需要了解channelartlist标签的基本用法。以下是一段代码,可以实现多个顶级栏目及其子栏目的同时输出:
{dede:channelartlist row=6 typeid='top'}
-
{dede:field name='typename'/}
{dede:channel type='son' noself='true'}
- [field:typename/]
{/dede:channel}
{/dede:channelartlist}
注:如果您希望控制顶级栏目的数量,请修改上述代码中红色部分的row参数。
尽管上述代码能够很好地展示顶级栏目和子栏目,但它有一个明显的缺陷——无法显示属性为外部链接的栏目。为了使外部链接也能正常显示,您需要对DedeCMS的核心文件进行小幅度修改。
具体操作步骤如下:
1. 打开DedeCMS安装目录下的include/taglib/channelartlist.lib.php文件。
2. 找到大约第67行左右的代码:
$tpsql = " reid=0 AND ispart<>2 AND ishidden<>1 AND channeltype>0 ";
3. 将其修改为:
$tpsql = " reid=0 AND ishidden<>1 AND channeltype>0 ";
通过移除“ispart<>2”这一条件,您可以确保外部链接类型的栏目也能被正确调用。
总结来说,DedeCMS的channelartlist标签虽然功能强大,但在默认设置下无法直接支持外部链接。通过简单修改核心文件中的SQL查询语句,我们可以轻松解决这一问题,从而让您的下拉菜单更加完善和灵活。希望本文的内容能帮助您更好地使用DedeCMS,提升网站开发效率。