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

在include/common.func.php的底部加入:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//获取顶级栏目名
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 故代码应如下所示:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//获取顶级栏目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”)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
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)"/} 聚模板首推这一方法,经过测试是可行的。

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

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

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

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

找到这条语句

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

修改成为

1
2
$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 ”;下一行添加

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

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

转载于:https://www.cnblogs.com/blogs-wzj/p/6774985.html

dede调用当前顶级栏目名称、ID、url方法相关推荐

  1. 织梦CMS调用指定顶级栏目名称的方法

    我们想在列表页或内容页调用指定顶级栏目名称及链接的时候,只能调用所有顶级栏目或该频道下面的子栏目,试了很多方法都不行,实在是让人郁闷.下面就来说说怎么调用指定栏目名称及链接的方法: 1.{dede:f ...

  2. dedecms织梦调用指定顶级栏目名称的方法

    在列表页或者内容详情页调用指定的顶级栏目名称及链接方法. 1.{dede:field name="typename"}    这是调用当前栏目的名称 2.{dede:channel ...

  3. phpcmsV9子栏目调用其父栏目名称、URL、catid等信息 - 方法总结

    phpcmsV9子栏目调用其父栏目名称.URL.catid等信息 - 方法总结 phpcmsV9子栏目列表页.内容页调用该栏目的父栏目和顶级栏目的名称.url链接.catid-id等信息的方法.具体参 ...

  4. phpcmsV9首页loop文章调用顶级栏目名称

    phpcmsV9首页loop文章调用顶级栏目名称 近日,查看了一下以前的项目,准备改进了一下样式和标签等. 这里主要针对以下两点: (1)最顶级父栏目 - 调用 (2)直接上一级父栏目 - 调用 项目 ...

  5. 织梦栏目mysql调用_织梦调用指定顶级栏目或当前子栏目名称的方法

    下面说说各种栏目名称的调用方法: 1.{dede:field name="typename"} 这是调用当前栏目的名称 2.{dede:channel type='son' row ...

  6. 织梦获取当前栏目的顶级栏目名称。

    目标:获取到当前栏目的顶级栏目名称. 首先在include/common.func.php文件里边添加如下方法 //获取顶级栏目名 function GetTopTypename($id) {glob ...

  7. 织梦调用父级栏目名称

    1.打开include/taglib/type.lib.php,找到 $row['typelink'] = $row['typeurl'] = GetOneTypeUrlA($row); 在其下面增加 ...

  8. dedecms获取顶级栏目名称、二级栏目名称实现方法

    标签如下: 当前: {dede:type} <a href=" [field:typelink  /] "> [field:typename/] </a> ...

  9. 织梦DEDECMS文章、栏目页获取当前页面顶级栏目名称的方法

    织梦DEDECMS文章.栏目页获取当前页面顶级栏目名称的方法 织梦DEDECMS文章.栏目页获取当前页面顶级栏目名称的方法 在用织梦做一些项目时,时常会碰到需要在当前页面调用顶级栏目名称的时候,织梦默 ...

最新文章

  1. Python大战C++,谁能更胜一筹?
  2. jQuery 的 serializeArray()、serialize() 方法
  3. 如何用python实现自动化_如何使用Python实现自动化水军评论
  4. Activiti 简易教程
  5. 数学里的π究竟牛在哪里
  6. A+B for Input-Output Practice (I)
  7. linux mysql 8.0启动不了_MySQL官方源从8.0.3直接yum升级到8.0.4后无法启动
  8. springcloud(第三篇)springcloud eureka 服务注册与发现 *****
  9. VC和gcc在保证功能static对线程安全的差异变量
  10. unity场景的结构和物体的属性导出xml文件
  11. lisp一键室内标注_CAD插件:自动标注面积lisp程序
  12. Labview实现AM调制
  13. ECU存储安全之存储器安全
  14. 怎么注销百度云服务器账号,百度网盘怎么注销账号?账号注销方法一览
  15. 计算机开机跳过硬盘检查,怎么取消开机自动检测硬盘磁盘检查,开机老是修复分区怎么办及原因...
  16. 夏天吃海鲜的八大禁忌
  17. python3 tkinter 刷新标签图片
  18. Flutter中使用device_info获取设备信息
  19. input框点击时去掉默认的外层边框
  20. 合格资本工具_《商业银行资本管理办法附件》附件1——资本工具合格标准.doc...

热门文章

  1. Eureka客户端使用IP注册preferIpAddress和ip-address的区别
  2. Linux服务集群部署实战--MySQL、Redis、ES、RocketMQ、Zookeeper
  3. Git创建版本库详尽教程
  4. 【学亮IT手记】oracle远程连接工具PL/SQL Developer的安装使用教程
  5. Spring AOP编程-aspectJ通知类型-6大通知
  6. sonar的安装以及使用
  7. linux 查看整个根目录下各个文件占用情况
  8. Qt智能指针--QWeakPointer
  9. Qt C++模版函数示例
  10. 2018山东省省赛 问题 H: Dominoes