您现在的位置是:刘宇博客 > 织梦DEDE > 内容织梦DEDE

织梦SEO优化之DEDECMS栏目列表分页重复标题元说明标记处理

站长刘宇2013-05-03 【织梦DEDE】人已围观

简介在上一篇文章《 织梦DEDECMS栏目列表分页链接优化 》中,介绍了怎么对DEDECMS的栏目列表分页链接进行优化,本文将介绍怎么给织梦栏目列表页添加分页标识(数字)。即要出现这样的效果: 列表第1页标题:SEO优化 列表第2页标题:SEO优化_第2页 列表第3页标题:SEO优化_

在上一篇文章《织梦DEDECMS栏目列表分页链接优化》中,介绍了怎么对DEDECMS的栏目列表分页链接进行优化,本文将介绍怎么给织梦栏目列表页添加分页标识(数字)。即要出现这样的效果:
列表第1页标题:SEO优化
列表第2页标题:SEO优化_第2页
列表第3页标题:SEO优化_第3页
这样做就避免了同意栏目所有的列表页的标题标记和元说明重复的问题,使SEO效果更好,当然,“_第2页”这样的效果是可以控制的。
搜索一下网络上已经有不少的朋友对这个问题提供了解决方案,站长SEO博客之前也找过相关资料做过测试,但发现有很多找到的代码都不够完善,例如:
改模板文件list_article.htm或者你使用的列表模板文件
<title>{dede:field.title/}_第{dede:pagelist listsize=’0′ listitem=’pageno’ function=’html2text(@me)’/}页</title>
用{dede:pagelist listsize=’0′ listitem=’pageno’ function=’html2text(@me)’/}可以调用第几页那个数字,但第一页也会出现分页标题,这样对优化来讲并不是很好!尤其是对搜索结果中用户的第一感觉,加以改进之后:
<title>{dede:field.title/}{dede:pagelist listsize=’0′ listitem=’pageno’ function=’html2text(@me)’/}</title>
在include中的arc.listview.class.php文件中找到
if(eregi(‘pageno’,$listitem)) $plist .= $listdd;
改成
if($listitem==’pageno’ && $list_len==0){
if(html2text($listdd)==1){
  if(eregi(‘pageno’,$listitem)) $plist .= ”;
}
else{
  if(eregi(‘pageno’,$listitem)) $plist = $plist .”(第”.$listdd.”页)”;
}
}
else{
if(eregi(‘pageno’,$listitem)) $plist .= $listdd;
}
其实这样做还是有个问题,就是会在内容过少的时候第一页的标题中出现“SEO优化 共 1 页 5 条记录”等这样的效果,直到列表页的内容超过了一个页面之后才会自动消失。这个方式之前站长SEO博客也在使用。
但是我们并不能保证每个栏目的列表页都会超过2页,所以我对代码进行了优化改进,目的就是解决以上问题。
方法1如下:
改模板文件list_article.htm或者你使用的列表模板文件
<title>{dede:field.title/}</title>
改成
<title>{dede:field.title/}{dede:pagelist listitem=”pageno” listsize=”0″ function=”html2text(@me)” runphp=”yes”}if (strlen(@me)>10 || @me==1) @me=”";else @me=”第”.@me.”页”;{/dede:pagelist}</title>
这样就完成了,不需要修改php文件,而且标题后面的文字可以控制。但是这里也有一个小小的问题,就是“第*页”的左右两侧都会出现一个空格,这也是这段代码不能解决的。虽然对于大多数朋友来说这样就已经够用了,但是如果你也像我一样追求完美,可以看看下面这种方法,不是很麻烦,而且很完美。
方法2如下:
改模板文件list_article.htm或者你使用的列表模板文件
<title>{dede:field.title/}</title>
改成
<title>{dede:field.title/}{dede:pagelist listitem=”paget” listsize=”0″ runphp=”yes”}if (strlen(@me)>10 || @me==1) @me=”";else @me;{/dede:pagelist}</title>
然后在\include\arc.listview.class.php文件中
1.找到
$listdd.= “<li class=\”thisclass\”>$j</li>\r\n”;
改成
$listdd.= “<li class=\”thisclass\”>$j</li>\r\n”;
$pagedd = “_第”.$j.”页”;
2.找到
if(eregi(‘pageno’,$listitem)) $plist .= $listdd;
改成
if(eregi(‘pageno’,$listitem)) $plist .= $listdd;
if(eregi(‘paget’,$listitem)) $plist .= $pagedd;
好了,大功告成了。其中$pagedd = “_第”.$j.”页”这个地方是你可以控制的,比如你不想要“SEO优化_第2页”这种样式而喜欢“SEO优化2”这种样式,就可以把$pagedd = “_第”.$j.”页”改成$pagedd = $j这样就可以了。修改之后就不会再出现相同栏目标题全都相同的情况。当然,你也可以可以把
{dede:pagelist listitem=”paget” listsize=”0″ runphp=”yes”}if (strlen(@me)>10 || @me==1) @me=”";else @me;{/dede:pagelist}
这段代码加入到摘要中,然后摘要就会出现分页标识(数字),这样做就使得SEO更细节化了。
 

文章评论