您当前的位置: 主页 > 优化教程
当我们做大型网站的时候,上百个栏目,为了SEO,在栏目模板里面,我们一般会像下面这样去调用栏目标题、关键字、描述。
 
<title>{dede:field.seotitle/}</title>
<meta name="keywords" content="{dede:field name='keywords'/}" />
<meta name="description" content="{dede:field name='description' function='html2text(@me)'/}" />
 
但是这样有一个问题,就是假如个别栏目忘记写标题、关键字、描述就会为空了。这时我们可能就会想,如果能让栏目标题、关键字、描述为空的时候,就调用上级的就好了,当上级没有时候时候,再调用上上级的,如果到顶级栏目都还没有的时候,就调用用网站首页的标题、关键字、描述,想法是可以,但是实现起来可能不容易。今天我就来分享一下我的方法吧。
 
DEDECMS 自动获取上级栏目的标题,关键字 描述    
第一步:打开/include/typelink.class.php  找到这一段代码 $this->TypeInfos = $this->dsql->GetOne($query);   在他下面加上三行代码加好之后如下
 
     //载入类目信息
     $query = "SELECT tp.*,ch.typename as ctypename,ch.addtable,ch.issystem FROM `idea_arctype` tp left join `idea_channeltype` ch
     on ch.id=tp.channeltype  WHERE tp.id='$typeid' ";
     if($typeid > 0)
     {
         $this->TypeInfos = $this->dsql->GetOne($query);
//填空
$this->TypeInfos['keywords'] = $this->TypeInfos['keywords'] ? $this->TypeInfos['keywords'] : $this->GetTrueInfos('keywords');
$this->TypeInfos['seotitle'] = $this->TypeInfos['seotitle'] ? $this->TypeInfos['seotitle'] : $this->GetTrueInfos('seotitle');
$this->TypeInfos['description'] = $this->TypeInfos['description'] ? $this->TypeInfos['description'] : $this->GetTrueInfos('description');
 
         if(is_array($this->TypeInfos))
         {
             $this->TypeInfos['tempindex'] = MfTemplet($this->TypeInfos['tempindex']);
             $this->TypeInfos['templist'] = MfTemplet($this->TypeInfos['templist']);
             $this->TypeInfos['temparticle'] = MfTemplet($this->TypeInfos['temparticle']);
         }
     }
 
第二步:在TypeLink类中增加一个调用方法GetTrueInfos($info) 代码如下:
 
//为了让某些栏目的关键字描述等不能为空 
   function GetTrueInfos($info = 'seotitle') {
$infos = array('reid'=>$this->TypeID,$info=>'');
while(empty($infos[$info]) && $infos['reid']!=0) {
$this->dsql->SetQuery("SELECT reid,".$info."  FROM idea_arctype WHERE id='".$infos['reid']."'");
    $infos = $this->dsql->GetOne();
}
if(empty($infos[$info])) {
if($info == "seotitle") return $GLOBALS['cfg_webname'];
if($info == "keywords") return $GLOBALS['cfg_keywords'];
if($info == "description") return $GLOBALS['cfg_description'];
    return $infos[$info];
   }
 
保存之后,这里我们去生成一下预览效果,此方法在DEDECMS 5.7 SP1上测试有效,其它版本未测试。 在此献丑了
 

关键词:dede,自,动动,获取,上级,栏,目的,标题,关键字,    标签:
    更多资讯请收藏关注 网站模板(www.1yc.cn)

织梦怎么调用用文章内第一张图片修改include/extend.func.php 添加如下代码: /... 2021-09-06
织梦模板DEDECMS中如何修改tag标签长度的教程许多CMS类网站都是DEDE织梦系统,出于SEO优化许多时辰必要用ta... 2021-07-22
DedeMS内容列表标签无法调用副栏目文章的解决办法最近,发现dedecms中的文章在选择幅栏目后,在其对应的幅栏目列表页... 2021-08-09
dedecmsdedecmslist标签按照权重排序织梦默认的列表页排列顺序是按照时间修改顺序,但是有些产品的重要性是有区... 2021-08-09
织梦dede编辑器附件和自定义字段附件上传文件点击无反应dede编辑器上的【附件】或者自定义字段【附件类型】,刚刚上传的文件不... 2021-07-22
织梦Dedecms上传中文文件不自动改名,保持原文件名的方法相信用过dedecms的人都清楚这一点,就是上传的文件会自动被改名,当... 2021-07-30
织梦dedecms上传图片出现image info error的解决方法织梦dedecms上传图片出现image info error的解决方... 2021-07-22
DedeCms织梦后台添加编辑文章空白解决办法原因分析: 根据dedecms官方文档说明,出现这种问题是可能是由于c... 2021-07-27
DEDECMS织梦模板使用ajax无刷新实现站内搜索功能的教程织梦使用ajax无刷新实现站内织梦搜索具体实现步骤: 1、打开你的 首... 2021-07-22
dedecms内容列表orderby排序方式目前dede的排序只能有以下的排序方式: orderby=sortra... 2021-08-09
Dedecms留言板留言后刷新会重复提交解决方法织梦CMS(dedecms)这款程序很好用,模板种类不仅多而且齐全,可... 2021-08-14
织梦教程:教您如何更改DEDE管理员ID有时候在安装dedecms模板的时候,不记得修改默认的admin这个超... 2021-07-27
织梦禁止调用隐藏栏目下文章的方法在用 织梦模板 建站的过程中,涉及调用全站的最新文章时,DedeCMS... 2021-07-22
织梦dedecms会员中心调用出需要的循环文档实现的办法比较简单,一句JS搞定:document.getElemen... 2021-07-27
百度编辑器ueditor代码高亮效果实现方法相信很多朋友在使用ueditor,同样地,我之前也一直使用uedito... 2021-07-22
dedecmsDedeCMS图集调用发布图片数量的方法织梦DedeCMS图集默认是不调用图片数量的,比如共X张这样,当网站需... 2021-08-09
dedecms列表页首页调用下载地址的办法总结直接在include/helpers/extends.helps.ph... 2021-07-27
织梦给arclist列表自动编号教程今天看见一个标签[field:global runphp=yes na... 2021-07-22

线
咨询热线:
135-0038-3336
在线客服:
点击这里给我发消息
微信交流:
公司官网: www.1yc.cn