网站地图    收藏   

主页 > 后端 > dedecms >

关于织梦隐藏栏目实现某些栏目在面包屑导航上

来源:自学PHP网    时间:2014-11-30 17:03 作者: 阅读:

[导读] 在用织梦的时候,由于方面管理,可能在后台建立栏目时需要嵌套很多层,但是有些层在实际应用和用户体验上是没有意义的,可以说为纯粹分类管理带来方便,而对seo来说没有任何好处,相反...

关于织梦隐藏栏目实现某些栏目在面包屑导航上不显示问题

在用织梦的时候,由于方面管理,可能在后台建立栏目时需要嵌套很多层,但是有些层在实际应用和用户体验上是没有意义的,可以说为纯粹分类管理带来方便,而对seo来说没有任何好处,相反还会加深spider对网站的爬行深度,可能会有不好的影响,所以我们可以适当改动,将某些栏目隐藏,不显示在面包屑导航中,将“主页 > 栏目一 > 栏目二 > 栏目三 > 栏目四 > 栏目五 >”简化成“主页 > 栏目三 > 栏目四 > 栏目五 >”下面来给大家介绍一种这样的方法:

一、隐藏不需要的栏目 

由于织梦后台提供的隐藏功能不够完善,隐藏栏目后连带子项目也会继承隐藏,所以我们要采用mysql管理工具(本人安装的是phpmyadmin)将该栏目字段隐藏,找到表"dede_arctype",打开,找到该栏目字段"ishidden",把其中的0修改为1。如此一来该项目就被隐藏,前台导航调用也会无法显示,但却不影响其子集项目。

二、修改include>typelink.class.php文件,目的是将隐藏栏目不在面包屑导航中显示,当然,修改前要注意备份。

① 查找:“return $this->valuePosition.$this->SplitSymbol;”,在这句话之前添加如下这段代码:

  1. if(ord(substr($this->valuePosition,strlen($this->valuePosition)-2)) == 62) 
  2.  $this->valuePosition = substr($this->valuePosition,0,strlen($this->valuePosition)-2); //开源软件:phpfensi.com 

② 查找LogicGetPosition($id,$islink)方法,修改查询sql语句,在sql遇见中添加字段ishidden:

  1. $this->dsql->SetQuery("Select id,reid,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath,ishidden From detest_arctype where id='".$id."'"); 

这个字段是用来判断,查询出来的栏目名称是否隐藏.

③ 搜索“$this->valuePosition = $this->GetOneTypeLink($tinfos).$this->SplitSymbol.$this->valuePosition;”,将之改为:

  1. //判断栏目是否隐藏,如果隐藏不显示链接地址 
  2. if ($tinfos['ishidden'] == 0){ 
  3.  $this->valuePosition = $this->GetOneTypeLink($tinfos).$this->SplitSymbol.$this->valuePosition; 

④ 查找GetOneTypeLink($typeinfos)方法,把方法改为:

  1. function GetOneTypeLink($typeinfos
  2.  //判断栏目是否隐藏,如果隐藏不显示链接地址 
  3.  if ($typeinfos['ishidden'] == 0){ 
  4.   $typepage = $this->GetOneTypeUrl($typeinfos); 
  5.   $typelink = "<a href='".$typepage."'>".$typeinfos['typename']."</a>";   
  6.   return $typelink;  
  7.  }   

如此,所有步骤就完毕了,大家更新一下试试,是不是隐藏的栏目已经不在面包屑里了呢!

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论