这篇文章主要介绍了详解织梦调用当前顶级栏目名称、ID、url方法的相关资料,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

我们在用织梦模板做网站时,经常会碰到需要调用当前顶级栏目名称,而织梦默认{dede:field name='typename' /} 只可以获取当前栏目页上一级栏目的名称,而不是当前栏目顶级栏目名称。

在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'];
    }
}

备注:若顶级栏目没有绑定二级域名,所调用的字段应该是 sitepath 故代码应如下所示: 

//获取顶级栏目url 
function GetTopTypeurl($id)
{
    global $dsql;
    $row = $dsql->GetOne("SELECT sitepath,topid FROM dede_arctype WHERE id= $id");
    if ($row['topid'] == '0')
    {
        return $row['sitepath'];
    }
    else
    {
        $row1 = $dsql->GetOne("SELECT sitepath FROM dede_arctype WHERE id= $row[topid]");
        return $row1['sitepath'];
    }
}

顶级栏目其他字段调用的function 函数仿照上面所示书写即可。

同理可得获取顶级栏目url方法 (当顶级栏目绑定二级域名时调用的字段为“ siturl”)

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

在文章页或者栏目列表页调用时,在所要调用栏目名称的位置加上下面这行代码即可实现。

 {dede:field name='typeid' function="GetTopTypename(@me)" /}    顶级栏目名
 {dede:field name='typeid' function="GetTopTypeurl(@me)" /}     顶级栏目url

dede调用顶级栏目ID 方法一:

{dede:field.typeid function="GetTopid(@me)"/}  dedeyuan首推这一方法,经过测试是可行的。

dede调用顶级栏目ID 方法二:

1、在所需要调用顶级栏目ID的地方,添加这段标签语法

{dede:type}[feild:topid/]{/dede:type}

2、修改源文件,找到include目录下的taglib目录下的type.lib.php。

找到这条语句

$row = $dsql->GetOne(“Select id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath
From `dede_arctype` where id=’$typeid’ “);

修改成为

$row = $dsql->GetOne(“Select id,topid,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath
From `dede_arctype` where id=’$typeid’ “);

在if(!is_array($row)) return ”;下一行添加

if( $row['topid']==0){$row['topid']=$row['id'];}

这样,这条语句在顶级栏目还是子栏目,都可以调用了

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持爱安网。

最新资讯
迅雷调低第三季度营收预期 云硬件销售额不及预期

迅雷调低第三季度营收

迅雷(Nasdaq:XNET)今日宣布,该公司已调低了2018财年第
饿了么口碑将首次参与天猫双11 覆盖吃喝玩乐场景

饿了么口碑将首次参与

天猫今日公布了2018双11的玩法。据悉,10月20日开始,天猫
中概股盘前全线上涨:阿里巴巴涨约3% 新浪涨3.61%

中概股盘前全线上涨:阿

截止北京时间19.38,中概股盘前全线上涨,阿里巴巴涨约3%,
中国互金协会披露五家银行网贷机构资金存管情况

中国互金协会披露五家

中国互联网金融协会19日对外披露了建设银行、招商银行
直击|阿里张勇:双11的销售“高度”在未来会习以为常

直击|阿里张勇:双11的

阿里巴巴CEO张勇在今晚举办的“天猫双11”启动仪式上
FF控制权未明:北京数十名员工提起劳动仲裁

FF控制权未明:北京数十

在与恒大多次沟通无果的情况下,目前FF中国员工选择了劳
最新文章
dede织梦文章列表隔行换色的方法

dede织梦文章列表隔行

这篇文章主要介绍了dede织梦文章列表隔行换色的方法的
详解DeDeCMS织梦手机版网站首页如何更新

详解DeDeCMS织梦手机

这篇文章主要介绍了详解DeDeCMS织梦手机版网站首页如
Dedecms移动端网站手机网站的搭建的方法

Dedecms移动端网站手

这篇文章主要介绍了Dedecms移动端网站手机网站的搭建
织梦dedecms安装教程 织梦cms怎么使用

织梦dedecms安装教程

在本篇文章中我们给大家分享一下新手如何使用织梦dede
dede把文章批量设为未审核

dede把文章批量设为未

一般情况我们在批量导入文章或者是采集后入库的文章需
dede中调用文章属性的名称(调用自定义属性名称)

dede中调用文章属性的

我们在前面文章给大家讲述了批量添加自定义属性的功能