我们做了一个网站,里面大概有三四千个栏目,栏目里面还分一二三级栏目。在做xml网站地图时,需要把网站所有的栏目都列出来。之前用的代码是:
{dede:channel typeid='483' row='2000'}
[field:typelink/]
2014-12-26
daily
0.8
{/dede:channel}
......
这样要手动指定很多栏目的id,无法读出一二三级的栏目,相当低麻烦,本来想找另外一个标签,可以一下子把所有的一二三级栏目都调取出来,但没找到。
最终我找了标签cattree来实现:
{dede:cattree typeid='483' catid='483' /}{/dede:cattree}
{dede:cattree typeid='264' catid='264' /}{/dede:cattree}
......
这样只需要指定网站所有的一级栏目id,工作瞬间轻松99%。
由于标签cattree读取出来的内容,包含带有dl dt等html结构代码,因此还要去修改。
找到文件includetaglibcattree.lib.php,看文件底部。
$row['typelink'] = getonetypeurla($row);
$revalue .= "\n";
$revalue .= "\n";
cattreelistson($row['id'], $revalue);
$revalue .= "
\n";
这个输出的三级栏目的样式
$row['typelink'] = getonetypeurla($row);
$thisv .= " \n";
$thisv .= " \n";
cattreelistson($row['id'], $thisv);
$thisv .= "
\n";
这个输出的二级栏目的样式
if($thisv!='') $revalue .= " \n$thisv \n";
这个输出的二级栏目下有子栏目的大样式
我修改后三段代码的分别是:
$row['typelink'] = getonetypeurla($row);
$revalue .= "\n";
$revalue .= "{$row['typelink']} \n2014-12-26 \ndaily \n0.8 \n \n";
cattreelistson($row['id'], $revalue);
$revalue .= "";
$row['typelink'] = getonetypeurla($row);
$thisv .= "\n";
$thisv .= "{$row['typelink']} \n2014-12-26 \ndaily \n0.8 \n \n";
cattreelistson($row['id'], $thisv);
$thisv .= "";
if($thisv!='') $revalue .= "$thisv";