在使用DedeCMS进行网站开发时,channelartlist标签是一个非常实用的功能,用于生成顶级栏目和子栏目的下拉菜单。然而,很多用户发现这个标签无法获取外部链接,这给实际应用带来了一定的限制。
首先,我们需要了解如何正确地使用channelartlist标签来生成多级菜单。以下是一段示例代码:
{dede:channelartlist row=6}
-
{dede:field name='typename'/}>
{dede:channel type='son' noself='true'}
- [field:typename/]
{/dede:channel}
{/dede:channelartlist}
注意:如果你想控制顶级栏目的数量,请调整上面代码中红色部分的row参数。
但是,上述代码有一个问题:如果某个栏目的属性是外部链接,那么它将不会被输出。为了解决这个问题,在DedeCMS 5.7版本中,你需要对include/taglib/channelartlist.lib.php文件进行修改。
具体步骤如下:
打开include/taglib/channelartlist.lib.php文件,找到大约第67行左右的代码:
$tpsql = " reid=0 AND ispart<>2 AND ishidden<>1 AND channeltype>0 ";
将其修改为:
$tpsql = " reid=0 AND ishidden<>1 AND channeltype>0 ";
通过这样的修改,就可以让channelartlist标签正常显示外部链接了。这一改动确保了无论是内部链接还是外部链接,都能够正确地出现在生成的菜单中。
总结一下,DedeCMS中的channelartlist标签虽然强大,但默认设置可能不完全符合所有需求。通过对源代码的小幅修改,可以解决不能获取外部链接的问题,从而实现更灵活的菜单生成功能。