在使用DedeCMS进行网站开发时,channelartlist标签是一个非常实用的工具,可以用来循环调用顶级栏目和子栏目。然而,许多用户发现该标签无法获取外部链接,这给制作包含外部链接的下拉菜单带来了困难。本文将为您详细介绍如何解决这一问题,并提供优化后的代码示例。

 

首先,我们需要了解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,提升网站开发效率。