1. 程式人生 > >dede列表頁詳情頁呼叫頂級欄目二級欄目名稱和連線

dede列表頁詳情頁呼叫頂級欄目二級欄目名稱和連線

蒐集了各種ded頂級欄目呼叫方法,發現實戰是最重要的,總結出適合自己的一套呼叫方式才是最重要的!有時候我們會在列表頁或者內容詳情頁呼叫指定的頂級欄目名稱及連結,試了很多方法,有的只能呼叫所有頂級欄目或者是該頻道下面的子欄目,實在是讓人感到費解。。下面說說各種欄目名稱的呼叫方法:

1、這是呼叫當前欄目的名稱

{dede:field name="typename"} 

 2、這是呼叫該頂級頻道下所有字欄目,row代表呼叫5條
{dede:channel type='son' row='5'} <a href="[field:typeurl/]">[field:typename/]</a> {/dede:channel} 

3、表示呼叫指定id的欄目,不過只能呼叫一個,要想多個呼叫就只能重複多次呼叫該標籤
{dede:type typeid='欄目id'} <a href="[field:typeurl/]">[field:typename/]</a> {/dede:type} 

4、呼叫子欄目的當前頂級欄目名稱
 {dede:channel type='top'}<a>[field:typename/]</a> {/dede:channel}

下面是呼叫頂級欄目名稱的方法:

方法一:

{dede:field.typeid runphp=’yes’}
  $ID = @me; 
  $sql = “SELECT * FROM `dede_arctype` WHERE id=$ID”;
  $query = mysql_query($sql);$row=mysql_fetch_array($query); 
  $relID = “$row[reid]“; 
  if($relID == 0) {@me = $row[typename];}
    else{$sql = “SELECT `typename` FROM `dede_arctype` WHERE id=$relID”;
  $query = mysql_query($sql);
  $row=mysql_fetch_array($query); 
  @me = $row[typename];}
{/dede:field.typeid}

這個方法語句有些長。

織夢者重點推薦方法二

方法二:
{dede:field.title runphp=’yes’}
  list($toptype,$sontype)=split(‘/’,@me);
  @me=$toptype;
{/dede:field.title}

方法三:
{dede:field.typeid runphp='yes'}
  $ID = @me; 
  $sql = "SELECT * FROM `dede_arctype` WHERE id=$ID";
  $query = mysql_query($sql);$row=mysql_fetch_array($query); 
  $relID = "$row[reid]"; $topID="$row[topid]"; 
  if($relID == 0) {@me = $row[typename];}
    else{$sql = "SELECT `typename` FROM `dede_arctype` WHERE id=$topID";$query = mysql_query($sql);
  $row=mysql_fetch_array($query); 
  @me = $row[typename];}
{/dede:field.typeid}

這個方法是改良過的,可以針對無限子欄目獲取頂級欄目,方法一二都是針對二級欄目。


個人推薦前面幾種方法,畢竟改後臺對於以後網站整體搬遷和維護都很不方便,儘量不要改後臺程式碼前臺程式碼能用各種邏輯實現為好,如特殊需求修改,則記錄好,方便以後網站維護!