PHP开发实例大全(提高卷) 中文完整pdf扫描版[244MB]
DEDE的默认认列表标题是:顶级栏目 / 一级栏目_网站标题
从这个默认的标题可以看出一级栏目并没有在前面,按照常见的说法是,越是在前面的东西,权重会越高一点,所以要改成:一级栏目+顶级栏目+网站标题的样式,这也符合用户看东西从左到右的性质。下面来看具体的修改细节。 交换列表页顶级栏目和二级栏目顺寻: 打开\include \typelink.class.php,164行 原文 $this->valuePositionName = $tinfos['typename'].$this->SplitSymbol.$this->valuePositionName; 修改为 $this->valuePositionName = $this->valuePositionName.$this->SplitSymbol.$tinfos['typename']; 改完之后就会出现 一级栏目/顶级栏目_网站标题 的形式 看到上面这重性质可能还会不太满意,因为中间的“/”(横杠)不是我们常见到的下划线(_),或者横杠(-)形式,其实这都无关紧要这个字符只不过是要搜索引擎来分隔字符用的。但是为了更好的达到网站优化的效果,我们还是会去修改,看到哪不满意就去找出问题,修改修改再修改,直到自己看不出什么问题的时候。再说修改方法吧 去掉栏目页标题的斜杠问题 原来:二级栏目页面的title是“一级栏目名称/二级栏目名称_网站名称”,经过第一步之后会变成“二级栏目名称/一级栏目名称_网站名称” 打开include/arc.listview.class.php,大约53行。 $this->Fields['title'] = ereg_replace(“[<>]“,” / “,$this->TypeLink->GetPositionLink(false)); 替换为: $this->Fields['title'] = ereg_replace(“[<>]“,”_”,$this->TypeLink->GetPositionLink(false)); 改成之后成为二级栏目名称_一级栏目名称_网站名称 经过这两步之后就成了你想要的效果了。这样的列表页也许有人会说还不够完美,因为同栏目下列表页的模板是相同的,会有相同标题的页面出现,特别是在谷歌管理员工具里面,经常可以看到重复标题的页面就是列表页相同的原因引起的,网上看到的常见解决办法是给标题再加上一个序号,加以区别如 以前的列表标题是:二级栏目名称_一级栏目名称_网站名称、二级栏目名称_一级栏目名称_网站名称、二级栏目名称_一级栏目名称_网站名称…..这样形式的(经过以上修改之后看到的结果)。 也可以把它改成标题(1)、标题(2)、标题(3)这样的形式,只是加上一个序号而以。对于这种情况,个人的观点是不必太在意这里的重复页面,列表页的和列表页之间的相似点太多,在搜索引擎经过去噪,内聚之后,只会留下一个页面参与排序。所以对于这种做法本人不太意,不必纠结于此,专心做好上两部之后,列表页的标题会得到权重的提升。 DedeCms5.5的修改方法: 打开include/arc.listview.class.php,大约53行。 $this->Fields['title'] = ereg_replace("[<>]"," / ",$this->TypeLink->GetPositionLink(false)); 替换为: $this->Fields['title'] = ereg_replace("[<>]","_",$this->TypeLink->GetPositionLink(false)); 这里是代码V53的。 以下为引用的内容: {dede:field.title runphp='yes'} $ta = '1'; //分解后显示的数组序号 $tb = '/'; //分隔符 $tc = @me; $td = split($tb,$tc); @me = $td[$ta-1]; {/dede:field.title} {dede:field name='title' runphp='yes'} **** {/dede:field} ===================================== 效果如下 第一页:<title>神算金点子</title> 第二页:<title>神算金点子_第2页</title> 第三页:<title>神算金点子_第3页</title> 第四页:<title>神算金点子_第4页</title> …… 相信这种结构对SEO是比较好的 好了,现在说说实现方法。 一共分两种情况,一种是动态,一种是静态。 动态列表页实现方法 第一步找到include/arc.listview.class.php文件中的 复制代码 for($j;$j<=$total_list;$j++) { if($j==$this->PageNo) { $listdd.= "<li class=\"thisclass\"><a>$j</a></li>\r\n"; } else { $listdd.="<li><a href='".$purl."PageNo=$j'>".$j."</a></li>\r\n"; } } 修改成 复制代码 for($j;$j<=$total_list;$j++) { if($j==$this->PageNo) { $listdd.= "<li class=\"thisclass\"><a>$j</a></li>\r\n"; $pagedd=""; if($this->PageNo !=1){$pagedd="_第".$j."页";} else { $listdd.="<li><a href='".$purl."PageNo=$j'>".$j."</a></li>\r\n"; } } 第二步 找到 复制代码 $plist = ''; if(eregi('index',$listitem)) $plist .= $indexpage; if(eregi('pre',$listitem)) $plist .= $prepage; if(eregi('pageno',$listitem)) $plist .= $listdd; if(eregi('next',$listitem)) $plist .= $nextpage; if(eregi('end',$listitem)) $plist .= $endpage; if(eregi('option',$listitem)) $plist .= $optionlist; if(eregi('info',$listitem)) $plist .= $maininfo; 注意:这段代码在文件中一共有两处,如果只修改动态列表就只用修改第一步紧接着的这段。 修改成 复制代码 $plist = ''; if(eregi('index',$listitem)) $plist .= $indexpage; if(eregi('pre',$listitem)) $plist .= $prepage; if(eregi('pageno',$listitem)) $plist .= $listdd; if(eregi('paget',$listitem)) $plist .= $pagedd; if(eregi('next',$listitem)) $plist .= $nextpage; if(eregi('end',$listitem)) $plist .= $endpage; if(eregi('option',$listitem)) $plist .= $optionlist; if(eregi('info',$listitem)) $plist .= $maininfo; 静态列表页实现方法 第一步找到include/arc.listview.class.php文件中的 复制代码 for($j;$j<=$total_list;$j++) { if($j==$this->PageNo) { $listdd.= "<li class=\"thisclass\">$j</li>\r\n"; } else { $listdd.="<li><a href='".str_replace("{page}",$j,$tnamerule)."'>".$j."</a></li>\r\n"; } } 修改成 复制代码 for($j;$j<=$total_list;$j++) { if($j==$this->PageNo) { $listdd.= "<li class=\"thisclass\"><a>$j</a></li>\r\n"; $pagedd=""; if($this->PageNo !=1){$pagedd="_第".$j."页";} else { $listdd.="<li><a href='".str_replace("{page}",$j,$tnamerule)."'>".$j."</a></li>\r\n"; } } 第二步 找到 复制代码 $plist = ''; if(eregi('index',$listitem)) $plist .= $indexpage; if(eregi('pre',$listitem)) $plist .= $prepage; if(eregi('pageno',$listitem)) $plist .= $listdd; if(eregi('next',$listitem)) $plist .= $nextpage; if(eregi('end',$listitem)) $plist .= $endpage; if(eregi('option',$listitem)) $plist .= $optionlist; if(eregi('info',$listitem)) $plist .= $maininfo; 注意:这段代码在文件中一共有两处,如果只修改静态列表就只用修改第一步紧接着的这段。 修改成 复制代码 $plist = ''; if(eregi('index',$listitem)) $plist .= $indexpage; if(eregi('pre',$listitem)) $plist .= $prepage; if(eregi('pageno',$listitem)) $plist .= $listdd; if(eregi('paget',$listitem)) $plist .= $pagedd; if(eregi('next',$listitem)) $plist .= $nextpage; if(eregi('end',$listitem)) $plist .= $endpage; if(eregi('option',$listitem)) $plist .= $optionlist; if(eregi('info',$listitem)) $plist .= $maininfo; 调用方法 在网页title标签中需要的地方插入{dede:pagelist listsize='0' listitem='paget' /}标签就可以。 这种方法对其他功能无影响。 这方法同样适用于其他分页列表。
转载请注明:谷谷点程序 » 织梦dedecms列表页标题优化指南