DEDE网站我在后台增加了一个增加顶级栏目但是生成之后在主页不

  1. AutoCMS
  2. /
  3. 建站资讯
  4. /
  5. 网站
logo
阮若成

网站  2026-08-18 03:00:04   136

DEDE网站我在后台增加了一个增加顶级栏目但是生成之后在主页不

这事儿我太有发言权了,前阵子刚折腾过一回。在Dede后台辛辛苦苦加了个顶级栏目,内容也填了,模板也选了,点击生成的时候系统还提示“成功”,结果打开网站首页一看,愣是没找到那个新栏目的影子。当时脑子里第一反应是——后台出bug了?还是我操作漏了哪一步?

后来静下心来排查,发现根本不是程序的问题,问题出在自己对Dede生成机制的理解上。DedeCMS的首页栏目导航,并不是你后台添加了栏目它就自动出现在主页上的,它靠的是模板里的标签调用。也就是说,你后台建了栏目,只相当于在数据库里存了一条记录,但首页那个导航栏的位置,是模板代码写死的,模板里没有调用这个新栏目,它自然就不会显示。

我那次的情况就是,用的是自定义首页模板,模板里写的是`{dede:channel type=''top'' row=''8''}`,这个标签的意思是调用顶级栏目,显示8个。而我当时后台已经有8个栏目了,新加的第九个自然就被这个“row=''8''”的限制给挡在了外面。这个参数你没去改它,它就永远只显示前8个。解决的办法很简单,把row改成更大的数字,或者直接去掉这个限制。

还有一种常见情况,有些朋友用的不是`channel`标签,而是手动在模板里写死的栏目链接。比如当年建站的时候,导航栏是手工HTML代码写死的,每个栏目一个`

  • `,后来后台添加了新栏目,模板文件里的那段HTML代码却一直没动过。这种情况你后台再怎么生成也没用,因为模板压根就没有动态调用栏目列表,你得手动去改模板文件,把新栏目的链接加上去。

    另外还有一个特别容易被忽略的坑——栏目属性设置。添加栏目的时候,栏目类型一定要选对。如果你不小心把栏目类型设成了“单页文档”,而不是“最终列表栏目”或者“频道封面”,那这个栏目在导航栏里可能会被特殊处理。我在测试的时候遇到过,单页文档类型的栏目在某些模板调用方式下是不显示在导航里的。这个属性在添加栏目的时候有个下拉框,默认是“最终列表栏目”,但如果你是从别的栏目复制过来的,说不定就带过来了奇怪设置。

    再有一个,就是缓存和生成的问题。DedeCMS生成静态页面之后,首页实际就是一个`.html`文件。你后台上传了新栏目,系统提示生成成功,但如果你只生成了栏目页,没有重新生成首页index.html,那首页当然不会变。我那次就是,光顾着生成栏目页去了,首页更新按钮压根没点。正确的做法是在后台“生成”菜单里,先更新系统缓存,然后重新生成首页,再把栏目页和文章页都批量生成一遍。顺序弄反了的话,有时候会出现栏目页能访问,但首页死活不更新的情况。

    还有个偏门一点的,服务器时间问题。之前有次客户那边服务器时间快了整整一天,结果新栏目设置的“发布时间”是未来的时间戳,Dede判断这个栏目还没到上线时间,首页调用的时候就自动过滤掉了。后来把服务器时间校正过来,重新生成一次就正常了。这种问题不常见,但如果你前面所有方法都试过了还不行,可以往这个方向想想。

    回想那次排查,最后发现其实就是模板标签里row参数的问题。改完之后重新生成首页,新栏目立马出现在导航栏里了。整个过程花了大概半个小时,说难也不难,就是得知道从哪儿下手。

    所以你要是也遇到这个问题,别慌,先看你首页模板是怎么调用栏目的,是标签调用还是写死的代码,再检查栏目属性是不是设成了特殊类型,然后确认有没有重新生成首页,最后再考虑服务器时间这种外部因素。按这个顺序排查,基本都能解决。