优化DedeCMS栏目列表分页链接

  织梦内容管理系统(DedeCms) 以简单、实用、开源而闻名,是国内最知名的PHP开源网站管理系统,也是使用用户最多的PHP类CMS系统,在经历了二年多的发展,目前的版本无论在功能,还是是易用性方面,都有了长足的发展,DedeCms免费版的主要目标用户锁定在个人站长,功能更专注于个人网站或中小型门户的构建,当然也不乏有企业用户和学校等在使用本系统,据不完全统计,目前正在运行的使用DedeCms开发的网站已经超过一万个。

  织梦内容管理系统(DedeCms)居于PHP+MySQL的技术架构,完全开源加上强大稳定的技术架构,使你无论是目前打算做个小型网站,还是想让网站在不断壮大后系仍能得到随意扩充都有充分的保证。

  织梦dedecms程序本身对于SEO优化就已经做得比较好做得比较细,灵活性也很强,相信这也她受到大家喜爱的原因之一。不过没有什么是十全十美的,DEDE虽然已经做了足够多的工作,但也总是有一些细节的东西,要我们去发现,去修改,去灵活使用,比如织梦DEDECMS栏目列表分页链接的优化。

  先看看DEDE默认栏目列表分页链接:

<li><a href=’list_4_1.html’>首页</a></li>
<li><a href=’list_4_3.html’>上一页</a></li>
<li><a href=’list_4_1.html’>1</a></li>
<li><a href=’list_4_2.html’>2</a></li>
<li><a href=’list_4_3.html’>3</a></li>
<li class=”thisclass”>4</li>
<li><a href=’list_4_5.html’>5</a></li>
<li><a href=’list_4_5.html’>下一页</a></li>
<li><a href=’list_4_5.html’>末页</a></li>

  这种链接方式其实并不十分合理,回到列表第一页的地址变成了list_4_1.html,这样已经无意中分散了栏目页的权重。如果这是http://www.ithov.com/abc/这个栏目的列表分页链接,下面的链接方式才更合理:

<li><a href=’/abc/’>首页</a></li>
<li><a href=’list_4_3.html’>上一页</a></li>
<li><a href=’/abc/’>1</a></li>
<li><a href=’list_4_2.html’>2</a></li>
<li><a href=’list_4_3.html’>3</a></li>
<li class=”thisclass”>4</li>
<li><a href=’list_4_5.html’>5</a></li>
<li><a href=’list_4_5.html’>下一页</a></li>
<li><a href=’list_4_5.html’>末页</a></li>

  我也因这个此问题在网上找了好些方法,但是很多都不能用,当然,也有可以用的,但是都会有个条件:使用这种方法的前提是生成的栏目列表页面要放在栏目的根文件夹下(也就是说只有一级栏目适用)。

  而很多朋友的网站栏目列表页都不是放在根目录下的(特别是二级栏目),怎么办呢?在经过深入研究和高人的指点后,我成功修改了前辈们的方法,使得栏目列表页面不管在不在根文件夹下都一样适用。下面重点介绍方法(以5.6版本为例):

1.找到\include\arc.listview.class.php这个文件,将

$typedir= ereg_replace(‘{cmspath}’,$GLOBALS['cfg_cmspath'],$this->Fields['typedir']);

这段代码添加到”//获得上一页和主页的链接”前面;

2.找到下面几行代码(就在”//获得上一页和主页的链接”下面)

if($this->PageNo != 1)
{
 $prepage.=”<li><a href=’”.str_replace(“{page}”,$prepagenum,$tnamerule).”‘>上一页</a></li>\r\n”;
 $indexpage=”<li><a href=’”.str_replace(“{page}”,1,$tnamerule).”‘>首页</a></li>\r\n”;
}

改成:

if($this->PageNo != 1)
{
 if($prepagenum==1)
 {
  $prepage.=”<li><a href=\”".$typedir.”/\”>上一页</a></li>\r\n”;
 }
 else
 {
  $prepage.=”<li><a href=\”".str_replace(“{page}”,$prepagenum,$tnamerule).”\”>上一页</a></li>\r\n”;
 }
 $indexpage=”<li><a href=\”".$typedir.”/\”>首页</a></li>\r\n”;
}

3.找到

$listdd.=”<li><a href=’”.str_replace(“{page}”,$j,$tnamerule).”‘>”.$j.”</a></li>\r\n”;

改成:

if($j==1)
{
 $listdd.=”<li><a href=\”".$typedir.”/\”>”.$j.”</a></li>\r\n”;
}
else
{
 $listdd.=”<li><a href=\”".str_replace(“{page}”,$j,$tnamerule).”\”>”.$j.”</a></li>\r\n”;
}

  好了,只需3步,大功告成了。而且在这个文件里,列表分页样式也可以直接修改。效果参考:http://www.duanwenxue.com/sanwen/suibi/。这样修改之后,就不再是出现list_4_1.html这样的链接,而是都直接链接到/abc/这样的地址。虽说这只是个小细节的修改,但是小细节有时候起到的作用却不能小觑。这样改之后保证链接回到的都是默认的列表页,避免了权重的流失,更符合SEO的做法。

  往后还会有其他方面的修改细节会慢慢分享出来,请关注韦文成博客。

  原文地址:http://www.weiwencheng.com/archives/105

  尊重作者,转载请注明来源。如在修改过程中遇到问题,可以在我博客留言,我会尽一份微薄之力,尽量给大家帮忙。

时间: 2024-09-23 00:52:47

优化DedeCMS栏目列表分页链接的相关文章

DedeCMS栏目列表去除推荐文章标题加粗样式

使用DedeCMS的同学肯定是经常使用DedeCMS的推荐位,不过官方默认的推荐位C会在文章标题外面包一层<b>标题</b>.DedeCMS官方的做法也没错,但是很多时候页面上设计的效果会被打乱,不能达到自定义的效果.新一分享一下DedeCMS栏目列表推荐文章加粗效果去除方法 去除文章标题加粗效果方法需要修改PHP源文件代码 路径:/include/arc.listview.class.php 第878行 原来  代码如下 复制代码 if(preg_match('/c/', $ro

修改织梦dedecms栏目标题格式教程

修改织梦dedecms栏目列表页标题格式本来默认标题 1级标题 / 2级标题_网站名称 修改效果:2级标题_1级标题_网站名称 最新版dedecms v5.7 sp1 修改文件:include/typelink.class.php 176行 修改为:$this->valuePositionName=$this->valuePositionName."_".$tinfos['typename']; 总结:后面的方法非常适合于现在的网站优化的一个走向了,不过有一个dedecms

为dedecms文章列表页标题增加序号,第二页开始才显示第x页

想必大伙建站都会写文章,随着时间的推移,你的智慧结晶会越来越多,一般的建站程序早帮你想好了,把这些文章做成一个列表,比如dedecms栏目列表,便于观众浏览,但有个问题就是dedecms文章列表页标题没有序号,如果是默认的话,第N页的标题和第一页的标题一模一样,对se相当不友好,它会认为你的网站重复页面太多,可能会对你的网站区别对待,那就太委屈了. 那么,怎么为dedecms文章列表页标题增加序号呢?织梦cms有一个文章列表函数:dede:pagelist,但这个函数可能没有具体运用到模板标题中

dedecms在栏目列表中添加统计文档数量调用标签

dedecms在栏目列表中添加统计文档数量调用标签,实现的方法还是非常简单的,只需要做一些简单的修改即可实现我们所需要的功能. 方法如下: 打开include/extend.func.php文件,在最后一行?的上面添加以下内容: function GetTotalArc($tid){global $dsql;$sql = GetSonIds($tid);$row = $dsql->GetOne("Select count(id) as dd From dede_archives where

DedeCMS列表专用pagelist|列表分页

pagelist|列表分页 标签名称:pagelist功能说明:表示分页页码列表 适用范围:仅列表模板 list_*.htm基本语法: {dede:pagelist listsize='5' listitem=''/}相关函数:文件\include\arc.archives.class.php第685行//获得动态页面分页列表function GetPagebreakDM($totalPage,$nowPage,$aid)//获得静态页面分页列表function GetPagebreak($to

推荐一款PHP+jQuery制作的列表分页的功能模块_php实例

做了一个列表分页的功能模块,主要的文件包括分页类 page.class.php 和 控制 ajax 分页的ajax.js,主要功能有: 1.可以选择 3 种常见的 url 分页格式: 2.可以选择 url 分页 还是 ajax 分页: 3.两种分页方式都可以自定义分页 a 标签的文字: 4.url 分页方式可以自定义分页偏移量: 5.url 分页方式可以选择手动跳转方式:手动输入页码跳转 或 下拉菜单选择页码跳转. 列表分页功能含有但不一定全部包含的元素包括: 首页.下一页.上一页.末页.具体页

帝国CMS列表分页样式(三)[!--show.listpage--]

 代码如下 复制代码 function sys_ShowListMorePage($num,$page,$dolink,$type,$totalpage,$line,$ok,$search=""){    global $fun_r,$public_r;    //num是取得的当前总的文章数,line是栏目设定里的一页显示多少文章数.如果当前文章总数少于设定数,中断程序返回,并且什么也不显示.    if($num<=$line)    {      $pager['showp

基于Metronic的Bootstrap开发框架经验总结(2)--列表分页处理和插件JSTree的使用

在上篇<基于Metronic的Bootstrap开发框架经验总结(1)-框架总览及菜单模块的处理>介绍了Bootstrap开发框架的一些基础性概括,包括总体界面效果,以及布局.菜单等内容,本篇继续这一主题,介绍页面内容常用到的数据分页处理,以及Bootstrap插件JSTree的使用.在数据的界面显示当中,表格数据的展示以及分页是非常常见的处理操作,利用Bootstrap的样式布局,以及JQuery的Ajax数据处理,就能很好实现数据的动态展示和分页处理. 1.列表展示和分页处理 1)数据的列

求助net 生成静态列表分页。

问题描述 前台模版代码<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><htmlxmlns="http://www.w3.org/1999/xhtml"><head><metahttp-equiv="Content-T