[英]Number of pages in Timber pagination
我正在使用 Timber 的第 2 版,我現在正在為我的檔案添加分頁。
默認情況下,Timber 在數組中返回 9 頁以進行分頁。 但是,我寧願只顯示第一頁、最后一頁和當前頁面之間的兩頁。
我希望看到的情況:對於第 1 頁: 1 | 2 | 3 |... | 300 | Next >
1 | 2 | 3 |... | 300 | Next >
例如第 7 頁: < Back | 1 |... | 5 | 6 | 7 | 8| 9 |... | 300 | Next >
< Back | 1 |... | 5 | 6 | 7 | 8| 9 |... | 300 | Next >
但是 Timber 的默認值(至少對於 V2 而言)是:對於第 1 頁: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9... | 300 | Next >
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9... | 300 | Next >
對於第 7 頁: < Back | 1 |... | 4 | 5 | 6 | 7 | 8 | 9 | 10 |... | 300 | Next >
< Back | 1 |... | 4 | 5 | 6 | 7 | 8 | 9 | 10 |... | 300 | Next >
因為帶有post.pagination.pages
的數組總是包含 9 個條目。
我在我的模板中為此使用了以下 pagination.twig。
{% 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 }}">« {{ __( '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') }}»</a>
</li>
{% endif %}
</ol>
</nav>
{% endif %}
我試圖找到一個好的過濾器或操作來更改此設置,但不幸的是我似乎找不到。 看起來版本 1 確實支持這一點。 雖然有pagination()
。 但是我找不到 V2 的替代方案。
Radek的回答讓我走上了正確的道路
use Timber\Pagination;
$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
您可以在此處輕松傳遞 arguments,因此這些來自 WordPress 文檔:
https://developer.wordpress.org/reference/functions/paginate_links/#parameters
最后你可以像這樣使用它:
use Timber\Pagination;
...
$context['pagination'] = Pagination::get_pagination([
'mid_size' => 1,
'end_size' => 1,
'show_all' => false,
]);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.