如何在dede模板的子栏目页面中调用并显示顶级栏目的名称及其链接?

在dede模板中,子栏目页面调用顶级栏目名称并带链接的代码如下:,,“html,[field:typename/],

在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模板的子栏目页面中调用并显示顶级栏目的名称及其链接?

答:在列表页或内容详情页调用指定的顶级栏目名称及链接,可以使用以下标签:

{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

本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。

(0)
未希新媒体运营
上一篇 2024-10-19 08:19
下一篇 2024-10-19 08:20

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

产品购买 QQ咨询 微信咨询 SEO优化
分享本页
返回顶部
云产品限时秒杀。精选云产品高防服务器,20M大带宽限量抢购 >>点击进入