因此,该函数的目的并不是很难:生成一组total
大小与current
page和一些漂亮的部分。
问题是URL的配置方式非常。。。原件和documentation 无法准确描述发生了什么。
文档表明这些是默认的base
和format
参数:
echo \'<pre>\', esc_html( paginate_links( [
\'base\' => \'%_%\',
\'format\' => \'?page=%#%\',
\'current\' => 1,
\'total\' => 3,
\'type\' => \'plain\',
] ) ), \'</pre>\';
<span class=\'page-numbers current\'>1</span>
<a class=\'page-numbers\' href=\'?page=2\'>2</a>
<a class=\'page-numbers\' href=\'?page=3\'>3</a>
<a class="next page-numbers" href="?page=2">Next »</a>
事实并非如此。默认值
base
和
format
根据站点的配置动态生成。对于我的开发站点,它们是这样的:
echo \'<pre>\', esc_html( paginate_links( [
\'base\' => \'http://dev.rarst.net/%_%\',
\'format\' => \'page/%#%/\',
\'current\' => 1,
\'total\' => 3,
\'type\' => \'plain\',
] ) ), \'</pre>\';
<span class=\'page-numbers current\'>1</span>
<a class=\'page-numbers\' href=\'http://dev.rarst.net/page/2/\'>2</a>
<a class=\'page-numbers\' href=\'http://dev.rarst.net/page/3/\'>3</a>
<a class="next page-numbers" href="http://dev.rarst.net/page/2/">Next »</a>
那么那里发生了什么?有两件事:
%#%
在里面format
替换为当前页码然后%_%
在里面base
替换为格式结果
第页的So
2
:
2
+ page/%#%/
= page/2/
page/2/
+ http://dev.rarst.net/%_%
= http://dev.rarst.net/page/2/
其余的参数处理“漂亮”的东西,比如拆分成段之类的(这样你就不会实际显示1000页的1000个链接)。
因此,我想总结一下:该函数非常灵活,允许构建非常不同的分页方案。但你真的需要有明确的目标base
和format
正确地
例如,有一些更高级别的包装器,这些包装器是稍后添加的,并且更特定于任务the_posts_pagination()
.