使用 paginate_links 函数实现 WordPress 分类标签分页功能
文 / @WordPress主题
分页功能的实现原理
我们知道,WordPress的文章列表和评论都是自带分页功能的,用户列表分页和分类列表分页也以很简单的实现,其实只要知道了实现分页功能的原理,一切皆可分页。
实现分类列表有两个必须的数据:$number
和$offset
参数,$number
是用来指定每页显示的数据数量,$offset
是用来计算从哪条数据开始获取。我们把这两个数据传递给获取分类项目的函数:get_terms
,最终会实现类似类似select*fromwp_termslimit10,20;
的SQL查询,每次点击下一页时,limit后面的数字都会递增,来查询显示下一页的数据。
准备分类或标签数据
paginate_links函数需要需要当前页数和最大页数来计算分类数据,显示分页列表,而 get_terms函数需要显示数量($number)和偏移量($offset)数据两个来获取分类数据,实现上面说的SQL查询,我们通过下面的代码把这些数据准备好。
$taxonomy='post_tag';
$number=100;
//分页参数
$page=(get_query_var('paged'))?get_query_var('paged'):1;
$offset=($page>0)?$number*($page-1):1;
$totalterms=wp_count_terms($taxonomy,['hide_empty'=>true]);
$totalpages=ceil($totalterms/$number);
$tags=get_terms([
'taxonomy'=>$taxonomy,
'orderby'=>'name',
'order'=>'ASC',
'hide_empty'=>true,
'fields'=>'all',
'number'=>$number,
'offset'=>$offset,
'cache_domain'=>'core',
]);
通过paginate_links函数实显示分页
有了上面准备好的数据,我们把数据传递给paginate_links
函数就可以实现和文章列表分页或者用户列表分页一样的功能了。
$big=999;
echopaginate_links([
'base'=>str_replace($big,'%#%',esc_url(get_pagenum_link($big))),
'format'=>'',
'current'=>max(1,$page),
'total'=>$totalpages,
'prev_text'=>'上一页',
'next_text'=>'下一页',
'type'=>'list',
'show_all'=>false,
'end_size'=>3,
'mid_size'=>0,
]);
除了使用WordPress内置的 paginate_links
函数,我们也可以自己实现的分页函数来实现效果更丰富的分页功能。
相关文章
-
如何创建WordPress古腾堡编辑器的区块(PHP+原生JS) 2024-01-10 01:01:06
-
搭建一个WordPress网站需要多少成本 2023-11-06 00:09:51
-
Symlink介绍(附:如何使用Symlink进行WordPress开发) 2023-11-05 23:38:32
-
让WordPress实现数据库同步的插件:HyperDB 2023-10-24 23:40:49
-
allegro电商平台值得做吗(附:2023年Allegro注册流程指南) 2023-10-08 21:53:39
-
印度跨境电商平台有哪些(附:印度跨境电商做什么产品好) 2023-10-08 21:34:23
-
跨境电商必看的几大海外二手电商平台 2023-10-08 18:04:42
-
WordPress同城互联网产品解决方案:UBASE 2023-10-03 16:40:39
-
WordPress网站的安全插件:wordfence 2023-09-14 09:25:18
-
WordPress 6.3 支持在手动更新插件和主题失败后回滚旧版本 2023-08-28 16:58:45