在网站建设中,合理使用顶级栏目ID可以帮助我们实现更灵活的功能,比如根据不同顶级栏目调用不同的banner广告图片。本文将详细介绍如何利用DedeCMS的顶级栏目ID来实现这一功能,并提供SEO优化的文章内容。 首页、联系我们、公司介绍等页面通常会调用默认的banner图。但对于产品页面,情况可能会有所不同。
例如:
产品大类A(封面页,typeid=111)-小类1 小类2 小类3 小类4
产品大类B(封面页 typeid=222)-小类5 小类6 小类7 小类8
产品大类C(封面页 typeid=333)-小类9 小类10 小类11 小类12...
在这些大类下,所有子栏目及文章的banner图通常是同一张。如A大类下的banner图为111.jpg,B大类为222.jpg。这实际上意味着,产品所有的页面都在调用所属顶级栏目的typeid对应的图片。 为了达到这样的效果,我们可以采用以下方法:

{dede:field.typename/}
这种方法通过修改图片名称即可实现所需效果,且经过测试非常实用。 另一种方法是直接在需要调用顶级栏目ID的地方添加标签语法 {dede:type}[feild:topid/]{/dede:type},然后修改include目录下的taglib目录中的type.lib.php文件。具体步骤如下: 找到并修改以下语句:

$row = $dsql->GetOne("Select id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath From `dede_arctype` where id=rsquo;$typeidrsquo; ");
将其改为:

$row = $dsql->GetOne("Select id,topid,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath From `dede_arctype` where id=rsquo;$typeidrsquo; ");
并在 if(!is_array($row)) return ""; 下一行添加:

if( $row['topid']==0){$row['topid']=$row['id'];}
这样设置后,无论是顶级栏目还是子栏目都可以正常调用。尽管此方法看起来不错,但经过测试可能无法完全满足需求,因此建议根据实际情况选择合适的方法。 总结来说,DedeCMS借助顶级栏目ID可以轻松实现不同页面调用不同banner广告图片的功能。只需确保每个顶级栏目的图片命名与ID对应即可完成配置。
希望以上内容对您有所帮助!