在DEDECMS中,搜索结果页的分页样式默认是使用<table>
标签来控制的,这种方式不利于SEO优化和样式自定义,为了实现更灵活的分页样式控制,可以通过修改PHP文件来实现将分页方式改为<ul><li>
标签控制,这样可以通过CSS自定义样式更方便地融入不同的模板风格中。
具体步骤如下:
1、打开文件:
找到并打开include/arc.searchview.class.php
文件,这个文件负责生成搜索结果页的分页内容。
2、替换代码:
在文件中找到“获取动态的分页列表”部分,从开始到“//获得数字链接”之间的代码全部替换为以下代码:
/** * 获取动态的分页列表 * * @access public * @param string $list_len 列表宽度 * @return string */ function GetPageListDM($list_len) { global $oldkeyword; $prepage = ""; $nextpage = ""; $prepagenum = $this>PageNo 1; $nextpagenum = $this>PageNo + 1; if ($list_len == "" || preg_match("/[^09]/", $list_len)) { $list_len = 3; } $totalpage = ceil($this>TotalResult / $this>PageSize); if ($totalpage <= 1 && $this>TotalResult > 0) { return "共1页/" . $this>TotalResult . "条记录"; } if ($this>TotalResult == 0) { return "共0页/" . $this>TotalResult . "条记录"; } $purl = $this>GetCurUrl(); $oldkeyword = (empty($oldkeyword) ? $this>Keyword : $oldkeyword); //当结果超过限制时,重设结果页数 if ($this>TotalResult > $this>SearchMaxRc) { $totalpage = ceil($this>SearchMaxRc / $this>PageSize); } $infos = "<li>找到<b>" . $this>TotalResult . "</b>条记录/只显示<b>{$totalpage}</b>页 </li>r "; $geturl = "keyword=" . urlencode($oldkeyword) . "&searchtype=" . $this>SearchType; $hidenform = "r "; $geturl .= "&channeltype=" . $this>ChannelType . "&orderby=" . $this>OrderBy; $hidenform .= "r "; $geturl .= "&kwtype=" . $this>KType . "&pagesize=" . $this>PageSize; $hidenform .= "r "; $geturl .= "&typeid=" . $this>TypeID . "&TotalResult=" . $this>TotalResult . "&"; $hidenform .= "r "; $purl .= "?" . $geturl; //获得上一页和下一页的链接 if ($this>PageNo != 1) { $prepage .= "<li><a href='" . $purl . "PageNo=$prepagenum'>上一页</a></li>r "; $indexpage = "<li><a href='" . $purl . "PageNo=1'>首页</a></li>r "; } else { $indexpage = "<li>首页</li>r "; } if ($this>PageNo != $totalpage && $totalpage > 1) { $nextpage .= "<li><a href='" . $purl . "PageNo=$nextpagenum'>下一页</a></li>r "; $endpage = "<li><a href='" . $purl . "PageNo=$totalpage'>末页</a></li>r "; } else { $endpage = "<li>末页</li>r "; } //获得数字链接 $listdd = ""; $total_list = $list_len * 2 + 1; if ($this>PageNo >= $total_list) { $j = $this>PageNo $list_len; $total_list = $this>PageNo + $list_len; if ($total_list > $totalpage) { $total_list = $totalpage; } } else { $j = 1; if ($total_list > $totalpage) { $total_list = $totalpage; } } for ($j; $j <= $total_list; $j++) { if ($j == $this>PageNo) { $listdd .= "<li class="thisclass"><a href='" . $purl . "PageNo=$j'>$j</a></li>r "; } else { $listdd .= "<li><a href='" . $purl . "PageNo=$j'>$j</a></li>r "; } } return $infos . $indexpage . $prepage . $listdd . $endpage . $nextpage; }
3、保存文件:
保存对include/arc.searchview.class.php
文件的修改。
4、更新缓存:
登录DEDECMS后台,进入“系统管理” > “SQL命令行工具”,执行以下SQL语句以清除缓存:
“`sql
DELETE FROMdede_cache
;
“`
5、查看效果:
访问网站的搜索结果页,检查分页样式是否已经成功更改为<ul><li>
标签控制,并通过CSS进行自定义样式设置。
表格对比:修改前后分页样式差异
修改前 | 修改后 | ||||||||||||||||||||||||||||
使用
|