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

这篇具有很好参考价值的文章主要介绍了详解织梦调用当前顶级栏目名称、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'];}

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持yii666。文章来源地址https://www.toymoban.com/news/detail-432305.html

到了这里,关于详解织梦调用当前顶级栏目名称、ID、url方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 织梦dede调用四级栏目的实现方法

    织梦调用四级子栏目,首先需要修改文件:includetaglibchannel.lib.php,请将以下代码全部复制替换上述文件: rn\\\";if($row=$dsql-GetArray()){$row[\\\'sonids\\\'] = $row[\\\'rel\\\'] = \\\'\\\';if($needRel){$row[\\\'sonids\\\'] = GetSonIds($row[\\\'id\\\'], 0, false);if($row[\\\'sonids\\\']==\\\'\\\') $row[\\\'rel\\\'] = \\\'\\\';else $row[\\\'rel\\\'] = \\\" rel=\\\'dropmenu{$row[\\\'id\\\']}\\\'\\\";

    2024年02月02日
    浏览(83)
  • 织梦dedecms首页调用指定栏目内容的标签详解

    我们知道Dedecms开发起来很简单,但是dedecms的全局变量有字节限制,使得我们通过标签在首页无法调用大段的内容,尤其是包含了html标签的内容,但是dedecms有另外一种调用大段内容的方法,那就是通过sql语句来调用已保存的html内容。 例如一般的企业网站都会有一个企业简介

    2024年02月02日
    浏览(61)
  • DedeCMS调用栏目名称限制字数的方法

    我们在DedeCMS调用栏目名称的时候使用的标签是channel,这样就可以调用出来栏目的名称,无论栏目的名称是多长都会调用出来,如果栏目名称很长的话就会影响到导航栏的美观,所以在调用的时候还要做一些栏目名称字数的限制。   我们在调用标题的时候想要控制字数采用的

    2024年02月03日
    浏览(39)
  • 织梦cms图集{dede:field name='imgurls'显示栏目名称

    今天又接了个织梦cms的有偿服务,客户的网站是织梦图片站,所以内容页是用的图集。 他想在图片的alt上面显示栏目名称,默认的是没有这样的标签的 织梦图集默认标签主要就是一个[field:alttext /] 一个 [field:imgsrc/]. 图集标签是用的这个 {dede:field name=\\\'imgurls\\\' ,那么在图片alt怎么加上

    2024年02月02日
    浏览(50)
  • 详解织梦DedeCMS栏目页分页标题Title添加“第N页”的方法

    织梦DedeCMS栏目页的标题,不管是第几页都是不变的,不利于网站的SEO,那么我们可以在分页的Title里加上第几页。 方法如下: 1.首先打开include/arc.listview.class.php文件.在文件中搜索: 并将其删除掉. 2.然后查找, 在他之前添加下面代码片段 3.打开织梦模板的列表页(list_article.htm、

    2024年02月02日
    浏览(43)
  • 帝国cms自定义列表模板里调用当前列表ID的方法

    我们在使用帝国cms自定义列表做模板时,需要获取当前自定义列表对应的ID,在自定义列表模板里面调用($GLOBALS[\\\'navclassid\\\'])获取不到当前自定义列表的id的 需要改下程序 eclassfunctions.php 搜索 //生成信息列表 $GLOBALS[\\\'navclassid\\\']=$classid; 改成 $GLOBALS[\\\'navclassid\\\']=$enews==4?$userlistr[\\\'l

    2024年02月03日
    浏览(55)
  • dedecms织梦php7+删除不了后台栏目的解决方法

    明明提示删除成功了,可是栏目还在后台栏目管理里,那是因为你的web环境PHP版本太高,例如PHP7的,织梦最新版本20180109还不能完全兼容PHP7,要么降低你的PHP版本为PHP5,要么修改一下这个文件。 PHP7+高版本环境下,织梦dedecms删除网站栏目失败。主要原因是语句书写不严谨,

    2024年02月03日
    浏览(47)
  • 详解DEDECMS织梦模板随机调用文章数据方法汇总教程

    有时我们为了网站优化都会对网站最后一些文章停止随机读取显现,这样能够进步网站对搜索引擎的体验,下面我们就来剖析总结一下dedecms随机调用文章数据办法. 方法一 ,直接利用artlist中的orderyb=rand 即可实例,代码如下: 代码如下: [field:title/]{/dede:arclist} 方法二 ,利用自定做法

    2024年02月02日
    浏览(44)
  • 详解织梦CMS自动清除文章内段落标签的调用方法

    织梦DEDECMS自动清除文章内段落p标签样式而保留p标签的方法: 今天在发布文章时发现,从别处复制过来的文字,自带的样式,特别是采集过来的内容,因为采集时没有做好标签的过滤,导致内容在我们网站上出现网页结构错乱,如下图 如果放在编辑器里清除样式后,又全部

    2024年02月03日
    浏览(51)
  • 详解织梦模板DEDECMS搜索结果调用自定义字段的方法

    在搜索页调用自定义字段,使其可有让用户搜索这个自定义字段,找了好多文章和教程,却发现dedecms的标签底层模板字段不包括这个字段呢?这就大大限制了灵活性,但也不可能让所有字段都允许调用的,那样就会大大降低系统效率,所以今天分享的是一个比较完美解决这个

    2024年02月02日
    浏览(56)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包