顶级栏目无法显示所有子栏目文章的问题,下面是解决方案
1.在后台设置,系统管理--->核心设置--->"上级列表是否包含子类内容:"选择"是"。 这个是官方给的解决方法,但我这样设置后也没有显示出来子栏目。 代码分析后发现: 1。通过"typeid in(1,2,3)" 方式 查询 dede_archives(文章表),in的typeid 包括顶级栏目ID 和子栏目id。这些ID 是通过GetSunID函数得到的。 2。GetSunID函数使用TypeGetSunTypes函数得到了文章type的数据,而数据是被dedeCMS缓存在“/data/cache /inc_catalog_base.php”文件中,该文件当执行关于栏目操作是被跟新。
3.解决问题:原来是我没有给该缓存文件目录(/data/cache)写入权限,导致其无法写入缓存。
上级列表是否包含子类内容 流程如下:
1。判断系统变量“global $cfg_list_son”是否开启"Y/N",$cfg_list_son="Y" 时,开启上级列表显示下级子类内容。
2。能否通过GetSunID函数获取子栏目ID,如果不能获取也无法 在上级列表显示下级子类内容。