在DedeCMS系统中,子栏目页面调用顶级栏目名称并带链接是一个常见的需求,通过合理的标签调用和适当的代码修改,可以实现这一功能,以下是详细的步骤和方法:
1、方法一:使用{dede:type}标签
调用方式:在DedeCMS中,可以使用{dede:type}标签来调用顶级栏目的名称和链接,具体实现如下:
{dede:type} <a href="[field:typelink /]">[field:typename /]</a> {/dede:type}
解释:上述代码会在子栏目页面显示顶级栏目的名称和链接,其中[field:typelink /]
表示顶级栏目的链接,[field:typename /]
表示顶级栏目的名称。
2、方法二:使用{dede:field.typeid}标签
调用方式:另一种方法是使用{dede:field.typeid}标签结合PHP代码来实现,具体实现如下:
{dede:field.typeid runphp='yes'} $ID = @me; $sql = "SELECT * FROMdede_arctype
WHERE id=$ID"; $query = mysql_query($sql); $row = mysql_fetch_array($query); $relID = "$row[reid]"; if ($relID == 0) { @me = $row['typename']; } else { $sql = "SELECTtypename
FROMdede_arctype
WHERE id=$relID"; $query = mysql_query($sql); $row = mysql_fetch_array($query); @me = $row['typename']; } {/dede:field.typeid}
解释:这段代码通过SQL查询获取当前栏目的顶级栏目信息,并将其名称输出,如果当前栏目没有父栏目(即顶级栏目),则直接输出当前栏目的名称。
3、方法三:使用自定义函数
调用方式:可以在include/helpers/extend.helper.php
文件中添加一个自定义函数来实现此功能,具体实现如下:
/* 获取顶级栏目相关信息 */ function getTopId($tid) { global $cfg_list_symbol, $cfg_basedir; $tc = ''; //分隔符 $tw = $GLOBALS['cfg_list_symbol']; //调用位置分隔符 $tf = split($tw, $tid); //分解成数组 $ta = 1; $tk = ''; while ($ta < count($tf)) { $tk .= $tf[$ta]; $ta++; } return $tk; }
使用方法:在模板中使用以下代码调用:
{dede:field name='position' runphp='yes'} list($toptype,$sontype)=split('',@me); @me=$toptype; {/dede:field} <a href="[field:typeurl/]">[field:typename/]</a>
解释:这段代码通过自定义函数getTopId
获取当前栏目的顶级栏目信息,并在模板中显示其名称和链接。
相关问答FAQs
问题1:如何在列表页或内容详情页调用指定的顶级栏目名称及链接?
答:在列表页或内容详情页调用指定的顶级栏目名称及链接,可以使用以下标签:
{dede:field name="typename"}
这是调用当前栏目的名称,要调用顶级频道下的所有子栏目,可以使用:
{dede:channel type='son' row='5'} <a href="[field:typeurl/]">[field:typename/]</a> {/dede:channel}
其中row
参数表示调用的栏目数量。
问题2:如何在子栏目页面调用当前顶级栏目名称和链接?
答:在子栏目页面调用当前顶级栏目名称和链接,可以使用以下标签:
{dede:field.typeid runphp='yes'} $ID = @me; $sql = "SELECT * FROMdede_arctype
WHERE id=$ID"; $query = mysql_query($sql); $row = mysql_fetch_array($query); $relID = "$row[reid]"; if ($relID == 0) { @me = $row['typename']; } else { $sql = "SELECTtypename
FROMdede_arctype
WHERE id=$relID"; $query = mysql_query($sql); $row = mysql_fetch_array($query); @me = $row['typename']; } {/dede:field.typeid}
这段代码通过SQL查询获取当前栏目的顶级栏目信息,并将其名称输出,如果当前栏目没有父栏目(即顶级栏目),则直接输出当前栏目的名称。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1223882.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复