如何在DedeCMS模板中调用当前栏目的上级栏目名称?

在DedeCMS模板中,可以通过以下标签调用当前栏目的上级栏目名称:,,“html,{dede:field name='topname'/},

在dedecms模板中,调用当前栏目的上级栏目名称可以通过多种方法实现,以下是几种常见的方法:

方法一:使用自定义函数

1、定义函数:在include/common.func.php文件中添加以下代码来定义一个获取顶级栏目名称的函数:

function GetTopTypename($id) {
    global $dsql;
    $row = $dsql>GetOne("SELECT typename,topid FROM dede_arctype WHERE id= $id");
    if ($row['topid'] == '0') {
        return $row['typename'];
    } else {
        $row1 = $dsql>GetOne("SELECT typename FROM dede_arctype WHERE id= $row[topid]");
        return $row1['typename'];
    }
}

2、调用函数:在需要显示上级栏目名称的位置,使用以下标签调用该函数:

{dede:field name='typeid' function="GetTopTypename(@me)" /}

方法二:直接使用系统标签

1、获取当前栏目ID:通过以下标签获取当前栏目的ID:

{dede:field name='id' /}

2、获取上级栏目名称:使用以下标签获取上级栏目的名称:

{dede:field name='reid' function="GetParentCategoryNameByID(@me)" /}

GetParentCategoryNameByID是一个需要在include/extend.func.php文件中定义的函数,用于根据当前栏目ID获取上级栏目名称。

方法三:修改系统文件

1、找到文件:打开include/helpers/extend.helper.php和common.func.php文件。

2、添加代码:在extend.helper.php文件末尾添加以下代码以获取顶级栏目名称:

如何在DedeCMS模板中调用当前栏目的上级栏目名称?
if ( ! function_exists('gettoptype'))
{
    function gettoptype($tid,$action)
    {
        global $dsql,$cfg_Cs;
        if(!is_array($cfg_Cs))
        {
            require_once(DEDEDATA."/cache/inc_catalog_base.inc");
        }
        if(!isset($cfg_Cs[$tid][0]) || $cfg_Cs[$tid][0]==0)
            return "";
        switch($action) {
            case "id":
                return $cfg_Cs[$tid][0];
            case "name":
                return $cfg_Cs[$tid][1];
            case "link":
                return '<a href="'.$cfg_Cs[$tid][2].'">'.$cfg_Cs[$tid][1].'</a>';
        }
    }
}

3、调用标签:在模板中需要显示上级栏目名称的位置,使用以下标签调用该函数:

{dede:field.typeid function="gettoptype(@me,name)" /}

FAQs

问题1:为什么在内容页无法获取到当前栏目的路径及名称?

答案:在dedecms中,{dede:field name=’arcurl’/}这个标签只能在内容页使用,而在栏目页则没有效果,如果需要在栏目页获取当前栏目的路径及名称,需要使用其他标签或方法。

问题2:如何获取当前栏目的父栏目名称?

答案:可以在include/extend.func.php文件中定义一个函数,如GetParentCategoryNameByID,用于根据当前栏目ID获取父栏目名称,然后在模板中使用{dede:field name=’id’ function=’GetParentCategoryNameByID(@me)’ /}标签调用该函数。

原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1218118.html

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

(0)
未希新媒体运营
上一篇 2024-10-16 07:25
下一篇 2024-10-16 07:32

相关推荐

发表回复

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

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