搭建网站时,很多站长都会遇到列表页分页样式自定义难题。易优CMS默认仅提供统一的分页标签
{eyou:pagelist listitem='index,pre,pageno,next,end' listsize='2' /},无法直接自定义 HTML 结构、Class 高亮样式,想要套用第三方分页风格、自定义页面分页排版,需要通过修改底层分页PHP文件实现。本文手把手讲解易优CMS分页结构改造、自定义样式、当前页高亮全套修改方法,适配所有模板,新手可直接照搬操作。
一、修改原理说明
易优CMS默认分页自带 <li> 列表嵌套结构、默认高亮 Class 为 active。如果你的模板分页样式是纯a标签结构、自定义高亮类名(如hover),直接套用标签会出现样式错乱、布局变形、高亮失效问题。
核心修改逻辑:根据模板现有分页HTML结构,对应修改底层分页生成代码,匹配标签结构与高亮样式。
分页核心配置文件路径(PC端):
core/library/think/paginator/driver/Eyou.php二、案例一:无li纯a标签分页样式改造(通用简约分页)
1、目标前端样式结构
本次适配无列表嵌套、纯a标签分页样式,结构如下:
<div class="ListsPages">
<a>首页</a>
<a>上一页</a>
<a class="active">1</a>
<a href="链接">2</a>
<a href="链接">3</a>
<a>下一页</a>
<a>末页</a>
</div>结构特点:无
<li> 标签,仅 a 标签排版,当前页通过 active 类高亮。2、模板标签调用写法
在列表页模板(lists_article.htm、lists_product.htm等)对应位置写入分页标签:
<div class="ListsPages">
{eyou:pagelist listitem='index,pre,pageno,next,end' listsize='2' /}
</div>3、底层PHP文件代码修改
打开
Eyou.php,找到默认分页生成代码,删除原有 <li> 嵌套结构,修改为纯a标签格式。原默认代码:
protected function getAvailablePageWrapper2($url, $page)
{
return '<li><a href="' . htmlentities($url) . '">' . $page . '</a></li>';
}
protected function getAvailablePageWrapper($url, $page)
{
return '<li><a href="' . htmlentities($url) . '">' . $page . '</a></li>';
}
protected function getDisabledTextWrapper($text)
{
return '<li><a>' . $text . '</a></li>';
}
protected function getActivePageWrapper($text)
{
return '<li class="active"><a>' . $text . '</a></li>';
}修改后代码(适配纯a标签):
protected function getAvailablePageWrapper2($url, $page)
{
return '<a href="' . htmlentities($url) . '">' . $page . '</a>';
}
protected function getAvailablePageWrapper($url, $page)
{
return '<a href="' . htmlentities($url) . '">' . $page . '</a>';
}
protected function getDisabledTextWrapper($text)
{
return '<a>' . $text . '</a>';
}
protected function getActivePageWrapper($text)
{
return '<a class="active">' . $text . '</a>';
}4、新版本额外适配(必看)
部分新版易优CMS会多一组
getActivePageWrapper2 激活按钮方法,务必同步修改,否则数字分页高亮失效:原代码:
protected function getActivePageWrapper2($text)
{
return '<li class="active"><a>' . $text . '</a></li>';
}修改后代码:
protected function getActivePageWrapper2($text)
{
return '<a class="active">' . $text . '</a>';
}保存文件后,纯a标签分页样式即可完全适配,当前页自动高亮。
三、案例二:保留li结构,自定义高亮class样式(官方演示站风格)
以易优官方演示站分页样式为案例,适配带li列表结构、自定义hover高亮类名的分页布局。
1、目标前端样式结构
<div class="pglist">
<li><a>首页</a></li>
<li><a>上一页</a></li>
<li><a class="hover">1</a></li>
<li><a href="链接">2</a></li>
<li><a>下一页</a></li>
<li><a>末页</a></li>
</div>结构特点:保留li列表嵌套,当前页高亮类名为 hover(非默认active)。
2、模板标签调用写法
<div class="pglist">
{eyou:pagelist listitem='index,pre,pageno,next,end' listsize='2' /}
</div>3、底层PHP高亮样式修改
无需修改li结构,仅替换高亮类名,将默认
active 改为模板对应的 hover。1)修改
getActivePageWrapper2 方法:原代码:
return '<li class="active"><a>' . $text . '</a></li>';修改为:
return '<li><a class="hover">' . $text . '</a></li>';2)修改
getActivePageWrapper 方法:原代码:
return '<li class="active"><a>' . $text . '</a></li>';修改为:
return '<li><a class="hover">' . $text . '</a></li>';保存文件后,刷新页面即可实现和演示站一致的分页高亮效果。

四、全局修改核心总结
- 先定结构,再改代码:优先查看模板分页是
li+a结构还是纯a结构,再对应增删标签; - 高亮类名精准匹配:模板用 active 就保留 active,用 hover 就替换为 hover,类名不一致会导致高亮失效;
- 新版双方法修改:新版程序存在
getActivePageWrapper、getActivePageWrapper2两个激活方法,必须全部同步修改; - 修改后清理缓存:文件保存后,后台清理全站缓存,避免样式不生效。
五、温馨提示
修改底层PHP文件前,建议先备份原Eyou.php文件,后续系统升级会覆盖底层文件,升级后需要重新套用分页修改代码,避免样式失效。
