用织梦DEDECMS做网站,需要做网站地图时,我们有时候需要把网站所有的栏目和文章信息都列出来。如果只有一级栏目还好处,但是如果有三级子栏目时,我们可以通过sql来处理。相关代码如下:

{dede:channelartlist typeid='45'}
  <h3><a href="{dede:field name='typeurl'/}">{dede:field name='typename'/}</a></h3>
  <ul>
    <!--二级-->
    {dede:sql sql='Select id,typedir,typename from `dede_arctype` where reid=~id~ ORDER BY id limit 0,20'} 
    <li><a href="[field:typedir function='str_replace("{cmspath}","",@me)'/]">[field:typename/]</a></li>

    <!--三级-->
    [field:id runphp='yes']
    global $dsql;
    $reid = @me;
    $str = '';
    $sql='Select typename,typedir from `dede_arctype` where reid='.$reid.' ORDER BY id limit 0,20';
    $dsql->SetQuery($sql);
    $dsql->Execute();
    while($row = $dsql->GetArray()){
      $url = str_replace("{cmspath}","",$row['typedir']);
      $str .= '<li><a href="'.$url.'">'.$row["typename"].'</a></li>';
      @me = $str;
   }
   if(@me == $reid){
     @me = '';
   }
   [/field:id]

   {/dede:sql}

  {dede:arclist row="3000"}
   <li><a href="[field:arcurl/]">[field:title/]</a></li>
  {/dede:arclist}
{/dede:channelartlist}


{dede:channelartlist typeid='52,53,54,55'}
  <h3><a href="{dede:field name='typeurl'/}">{dede:field name='typename'/}</a></h3>
  <ul>
  {dede:channel type='son' noself='yes'}
    <li><a href="[field:typelink/]">[field:typename/]</a></li>
  {/dede:channel}
  {dede:arclist row="3000"}
    <li><a href="[field:arcurl/]">[field:title/]</a></li>
  {/dede:arclist}
  </ul>
{/dede:channelartlist}