本文介绍如何通过php的array_chunk函数将wordpress所有分类按每页3个进行分组,并结合get参数实现简易分页,避免一次性加载全部分类影响性能与用户体验。
在WordPress主题模板中,默认使用 get_categories() 会获取站点全部分类,若分类数量较多,直接循环输出不仅影响页面加载速度,也违背“按需展示”的设计原则。要实现每页仅显示3个分类 + 手动分页,推荐采用服务端分组方案(无需AJAX或插件),核心思路是:先获取完整分类数组,再用 array_chunk() 切割为每组3项的二维数组,最后根据URL
参数(如 ?page_number=0)动态读取对应页码的数据。
以下是优化后的完整代码示例(含健壮性处理):
false)
$categories = get_categories([
'hide_empty' => false,
'orderby' => 'name',
'order' => 'ASC'
]);
// 按每3个一组切分
$chunked_categories = array_chunk($categories, 3);
// 总页数(用于生成分页导航)
$total_pages = count($chunked_categories);
// 安全读取当前页数据:防止越界访问
$current_page_categories = !empty($chunked_categories[$page])
? $chunked_categories[$page]
: [];
// 输出当前页的3个分类(Bootstrap栅格适配)
foreach ($current_page_categories as $category) {
echo '';
echo 'term_id)) . '" class="category-link">';
echo esc_html($category->name);
echo '';
}
?>✅ 关键注意事项:
通过此方案,你既能精准控制每页展示数量,又保留了原生WordPress分类结构的灵活性,是轻量级分类分页的理想实践。