如何自定义dedeCMS搜索结果页面的分页样式?

要修改dedeCMS搜索结果页的分页样式,可以编辑模板文件并自定义分页HTML代码。

在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进行自定义样式设置。

表格对比:修改前后分页样式差异

修改前 修改后
使用

如何自定义dedeCMS搜索结果页面的分页样式?
标签进行布局,难以通过CSS自定义样式

使用

  • 标签进行布局,便于通过CSS自定义样式
分页代码位于include/arc.listview.class.php 分页代码位于include/arc.searchview.class.php
分页样式受表格限制,不易调整 分页样式自由度高,可通过CSS轻松调整
不利于SEO优化,因为搜索引擎对表格解析不如列表友好 有利于SEO优化,因为搜索引擎更喜欢列表结构
冗余代码较多,维护成本高 代码更简洁,易于维护和二次开发
需要手动调整多个文件或模板以匹配不同页面的样式 只需修改一个核心文件即可应用到所有搜索结果页
示例:

上一页 示例:

  • 上一页
  • 示例:

    下一页 示例:

  • 下一页
  • 示例:

    1 示例:

  • 1
  • 示例:

    2 示例:

  • 2
  • 示例:

    3 示例:

  • 3
  • 示例:

    末页 示例:

  • 末页
  • FAQs常见问题解答:

    1、为什么需要修改DEDECMS的搜索结果页分页样式?

    DEDECMS默认的搜索结果页分页样式使用的是<table>标签,这不利于SEO优化和样式自定义,通过修改为<ul><li>标签控制,可以提高搜索引擎友好度,并且更容易通过CSS自定义样式,使网站更加美观和专业,使用列表标签可以使代码更加简洁,易于维护和二次开发。

    2、如何验证修改后的分页样式是否生效?

    完成上述修改步骤后,访问网站的搜索结果页,检查分页样式是否已经变为由<ul><li>标签控制,如果分页样式成功变更,你可以通过浏览器的开发者工具(如Chrome的开发者工具)查看页面源代码,确认分页部分的HTML结构已经更新为<ul><li>标签,可以添加一些自定义的CSS样式来进一步验证样式是否生效,如果一切正常,说明你的修改已经成功生效。

    原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1102044.html

    (0)
    未希的头像未希新媒体运营
    上一篇 2024-09-29 15:45
    下一篇 2024-09-29

    发表回复

    您的电子邮箱地址不会被公开。 必填项已用 * 标注

    云产品限时秒杀。精选云产品高防服务器,20M大带宽限量抢购  >>点击进入