我的编程空间,编程开发者的网络收藏夹
学习永远不晚
位置:首页-资讯-开源

详解织梦调用当前顶级栏目名称、ID、url方法

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

详解织梦调用当前顶级栏目名称、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'];}

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

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

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

详解织梦调用当前顶级栏目名称、ID、url方法

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

详解织梦调用当前顶级栏目名称、ID、url方法

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

dedecms调用当前栏目ID与当前栏目顶级ID的方法

本文实例讲述了dedecms调用当前栏目ID与当前栏目顶级ID的方法。分享给大家供大家参考。具体分析如下: 一、采用dedecms获取当前所在栏目ID的方法如下: 1.模板中调用栏目ID采用如下方法:复制代码代码如下:{dede:type}
2022-06-12

如何获取织梦cms当前栏目的顶级栏目名称

在用织梦做一些项目时,时常会碰到需要在当前页面调用顶级栏目名称的时候,织梦默认{dede:field name='typename' /} 可以获取当前栏目页上一级栏目的名称,而不是当前栏目顶级栏目名称。 使用时一定要注意是不是需要修改查询
2022-06-12

织梦DEDECMS网站栏目页获取当前顶级栏目名称的标签

下面拓展出一个BIEJE方法来实现这个效果、: 在include/common.func.php的最下方加入: 复制代码代码如下: //获取顶级栏目名 function GetTopTypename($id) { global $dsql;
2022-06-12

织梦dedecms获取当前栏目路径及栏目名称的方法

标签如下:当前: 复制代码代码如下:{dede:type} [field:typename/] {/dede:type} 因为{dede:field name='ar
2022-06-12

详解织梦dedecms5.7 无限级多级栏目菜单调用方法

以前在用到5.7无限级栏目列表菜单时下载了网上的资料都未成功,因此我参考网上及dedecms本身的channel.lib.php及cattree.lib.php制作了调用标签。 1、在include\taglib建立randomartlis
2022-06-12

织梦在导航栏下拉菜单中调用当前栏目子类的方法

复制代码代码如下: {dede:channelartlist typeid="top" row='18' currentstyle="
  • 编程客栈
  • dedecms子栏目中调用其顶级栏目名称和简介的方法

    本文实例讲述了dedecms子栏目中调用其所属顶级栏目的名称和简介的方法。分享给大家供大家参考。具体实现方法如下: 顶级栏目的名称及链接:复制代码代码如下:{dede:field name='id' runphp="yes"} glob
    2022-06-12

    编程热搜

    • wordpress错位如何解决
      这篇文章主要介绍“wordpress错位如何解决”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“wordpress错位如何解决”文章能帮助大家解决问题。wordpress
      wordpress错位如何解决
    • 帝国cms调用栏目别名的修改步骤
      请留意下面的修改方法 修改后栏目别名使用 !--bname--] 调用 打开e/class/t_functions.php搜索定位到带模板的栏目导航标签修改1复制代码代码如下://替换变量$bclassname=$class_r[$clas
      帝国cms调用栏目别名的修改步骤
    • 动易Cms MAC验证视图失败的解决方法
      “/”应用程序中的服务器错误。 -------------------------------------------------------------------------------- 验证视图状态 MAC
      动易Cms  MAC验证视图失败的解决方法
    • DEDECMS如何支持中文水印
      DEDECMS如何支持中文水印?修改/include/inc_photograph.php,在165行处加这行代码:$w_text = iconv("GB2312","UTF-8",$w_text);OK,现在可以用中文做水印了,但默认的字体大小是5,中文字体
      DEDECMS如何支持中文水印
    • 快速了解Discuz!程序文件功能
      相信有不少人热衷于基于修改原有系统文件所做的插件,当然了解程序文件功能是最重要的,下面我把Discuz! X2.0主要的程序文件功能说一下。Tips:Q:针对说明的文件是?A:我只基于原版文件对upload目录中基本的程序文件(php,ht
      快速了解Discuz!程序文件功能
    • DedeCMS编辑器fck更换成eWebEditor编辑器具体步骤
      将eWebEditor编辑器插入DEDE后台的效果: 完全Word在线编辑的功能,让你从此摆脱发可编辑器卡得死,进入流畅干净编辑界面新时代。 下面是具体步骤: 首先,你要知道eWebEditor是一个什么工具。 eWebEditor是由国
      DedeCMS编辑器fck更换成eWebEditor编辑器具体步骤
    • 允许 WordPress 上传任意文件的方法
      此时如果上传一个不在预定义编程客栈的安全扩展名列表,如.lrc,会报kAtKhHRl错: F编程客栈ile type does not meet security guidelines. Try another. 解决此问题有两方法: 在
      允许 WordPress 上传任意文件的方法
    • dedecms 软件下载模块中添加下载方式为迅雷下载联盟代码
      修改 /plus/download.php 文件 www.cppcns.com查找
      dedecms 软件下载模块中添加下载方式为迅雷下载联盟代码
    • dedecms网站tag标签全部静态化的解决方法
      更改tags.php文件在根目录 找到$tag = FilterSearch(urldecode($tag)); 替换为:$tag = urldecode($tag); 更改文件arc.taglist.class.php文件文件所在的路径是
      dedecms网站tag标签全部静态化的解决方法
    • 帝国CMS远程保存图片的方法
      本文实例讲述了帝国cms远程保存图片的方法。分享给大家供大家参考。 具体实现方法如下:复制代码代码如下:
      帝国CMS远程保存图片的方法

    目录