在制作DEDE模板的过程中,我们经常会遇到需要调用上级栏目名称和链接的情况。为了实现这一功能,我们可以采用以下方法。
以下是具体实现方式:
其中,红色字体部分为栏目链接的调用代码,而蓝色字体部分则是用于调用栏目名称的代码。
当然,还有其他多种调用方式,例如:
1. 调用当前栏目的名称:
{dede:field name="typename"}
2. 调用顶级频道下所有子栏目(row表示调用数量):
{dede:channel type='son' row='5'} [field:typename/] {/dede:channel}
3. 调用子栏目的当前顶级栏目名称:
{dede:channel type='top'}[field:typename/] {/dede:channel}
4. N级子栏目调用最上级栏目名称:
{dede:field name='position' runphp='yes'}
$tc="-"; //分隔符
$tw=$GLOBALS['cfg_list_symbol']; //调用位置分隔符
$tf=split($tw,@me); //分解成数组
$ta=1;$tk=trim($tf[$ta]);$tk=substr($tk,0,-2);@me=$tk; //赋值给@me
{/dede:field}
5. N级子栏目调用上级栏目名称:
方法一:
{dede:field name='position' runphp='yes'}
$tc="-"; //分隔符
$tw=$GLOBALS['cfg_list_symbol']; //调用位置分隔符
$tf=split($tw,@me); //分解成数组
$ta=(count($tf)-3);$tk=trim($tf[$ta]);@me=$tk; //赋值给@me
{/dede:field}
方法二:
6. 调用指定栏目:
{dede:type typeid='栏目id'} [field:typename/] {/dede:type}
7. 实现“文章标题-二级栏目-一级栏目-网站名”的标题栏显示:
{dede:field name='title'/}-{dede:field name='position' runphp='yes'}
$tc="-"; //分隔符
$tw=$GLOBALS['cfg_list_symbol']; //调用位置分隔符
@me=html2text(@me); //去除HTML标签
$tf=split($tw,@me); //分解成数组
for($ta=(count($tf)-2);$ta>=1;$ta--){ //循环赋值给$tk
$tk.=trim($tf[$ta]).$tc;}$tk=substr($tk,0,-1);@me=$tk; //赋值给@me
{/dede:field}-{dede:global name='cfg_webname'/}
此外,还可以通过以下方法调用顶级栏目名称:
{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栏目的相关信息,从而提升模板的功能性和用户体验。
--- 希望这篇文章能够满足您的需求!