做站的時候碰到一個問題,需要在二級、三級,甚至更多級,獲取頂級欄目或者二級欄目名稱。
現在和大家分享下最簡單的實現方法。找到include/common.func.php文件,在裡面加入下面這段代碼:
//獲取二級欄目名
function GetTopTypename($id)
{
global $dsql;
$row = $dsql->GetOne("SELECT typename,reid FROM dede_arctype WHERE id= $id");
if ($row['reid'] == '0')
{
return $row['typename'];
}
else
{
$row2 = $dsql->GetOne("SELECT typename FROM dede_arctype WHERE id= $row[reid]");
return $row2['typename'];
}
}
然後在任意列表頁、內容頁需要調用名稱的地方加入:
{dede:field.typeid function="GetTopTypename(@me)"/}
如果在dede標簽裡面,就用下面這句調用:
[field:typeid function="GetTopTypename(@me)"/]
上面這個方法是調用欄目的二級欄目名稱,如果需要頂級欄目名稱,只要將SQL裡面的reid字段改成topid就可以了。
注意:如果你的表前綴不是默認的dede_,記得將dede_arctype前綴改成你數據庫的前綴。
*