簡體   English   中英

Timber 分頁中的頁數

[英]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 }}">&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 確實支持這一點。 雖然有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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM