木材分页中的页数



我使用的是Timber的版本2,现在我正在为我的档案添加分页。

默认情况下,Timber在数组中返回9页进行分页。然而,我宁愿只显示第一页、最后一页以及当前页之间的两页。

我希望看到的情况是:对于第1页:1 | 2 | 3 | ... | 300 | Next >

例如第7页:< Back | 1 | ... | 5 | 6 | 7 | 8| 9 | ... | 300 | Next >

但是,Timber的默认值(至少对于V2(为:对于第1页:1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 ... | 300 | Next >

对于第7页:< Back | 1 | ... | 4 | 5 | 6 | 7 | 8 | 9 | 10 | ... | 300 | Next >

因为post.pagination.pages的数组总是包含9个条目。

我在模板中使用了下面的pagination.titch。

{% if posts.pagination.pages is not empty %}
<nav class="pagination" role="navigation" aria-label="pagination">
<ol class="pagination__items">
{% if posts.pagination.prev %}
<li class="pagination__previous pagination__link">
<a href="{{ pagination.prev.link }}">&laquo; {{ __( 'Vorige', 'my-site' ) }}</a>
</li>
{% endif %}
{% for page in posts.pagination.pages %}
<li class="pagination__link {{ page.class }}">
{% if page.link %}
<a href="{{ page.link }}">
<span class="visually-hidden">{{ __( 'Pagina', 'my-site' ) }}</span> {{ page.title }}
</a>
{% else %}
<span>
<span class="visually-hidden">{{ __( 'Pagina', 'my-site' ) }}</span> {{ page.title }}
</span>
{% endif %}
</li>
{% endfor %}
{% if posts.pagination.next %}
<li class="pagination__next pagination__link">
<a href="{{ pagination.next.link }}">{{ __('Volgende', 'my-site') }}&raquo;</a>
</li>
{% endif %}
</ol>
</nav>
{% endif %}

我试图找到一个好的过滤器或操作来更改设置,但不幸的是,我似乎找不到。看起来版本1确实支持此功能。而CCD_ 6。然而,我找不到V2的替代方案。

Radek的回答让我走上了的正确道路
use TimberPagination;
$context['pagination'] = Pagination::get_pagination( [
'mid_size' => 2,
'end_size' => 1,
'show_all' => false,
] );

根据文档:

https://timber.github.io/docs/v2/reference/timber-pagination/#get_pagination

你可以很容易地在这里传递论点,所以这些都来自WordPress文档:

https://developer.wordpress.org/reference/functions/paginate_links/#parameters

最后你可以这样使用:

use TimberPagination;
...
$context['pagination'] = Pagination::get_pagination([
'mid_size' => 1,
'end_size' => 1,
'show_all' => false,
]);

最新更新