Пагинация не работает правильно с Twig - PullRequest
0 голосов
/ 12 февраля 2019

Я использую Twig внутри WordPress в плагине Timber, и я в основном следовал макету, который они использовали для нумерации страниц здесь .

Он отображается нормально и все, но кажется, чтоаргументы не работают правильно для этого бита:

{% include 'partials/pagination.twig' with { pagination: posts.pagination({show_all: false, mid_size: 2, end_size: 1}) } %}

Независимо от того, что я установил для него эти аргументы, выводит каждую страницу;поэтому, если у меня будет 10 страниц, он распечатает все 10 номеров страниц;Я не хочу этого, я пытаюсь ограничить его до 5.

Что здесь не так?

1 Ответ

0 голосов
/ 15 февраля 2019

Вам не нужно использовать шаблон по умолчанию pagination, вы можете перейти к полной настройке

{% set pages_to_show = 5 %}
{% set current = posts.pagination.current %}
{% set max = current + (pages_to_show - 1) %}
{% if max > posts.pagination.total %}
    {% set current = posts.pagination.total - (pages_to_show - 1)  %}
    {% set max = posts.pagination.total %}
{% endif %}


<div class="tool-pagination">
    {% if posts.pagination.prev %}
        <a href="{{posts.pagination.prev.link}}" class="prev {{posts.pagination.prev.link|length ? '' : 'invisible'}}">Prev</a>
    {% endif %}    
    <ul class="pages">
        {% for i in current..max %}
            <li>
                {% if posts.pagination.pages[i].link %}
                    <a href="{{posts.pagination.pages[i].link}}" class="{{posts.pagination.pages[i].class}}">{{posts.pagination.pages[i].title}}</a>
                {% else %}
                    <span class="{{posts.pagination.pages[i].class}}">{{posts.pagination.pages[i].title}}</span>
                {% endif %}
            </li>
        {% endfor %}
        {% if posts.pagination.next %}
            <a href="{{posts.pagination.next.link}}" class="next {{posts.pagination.next.link|length ? '' : 'invisible'}}">Next</a>
        {% endif %}     
    </ul>
</div>

облегченная демонстрация


не это просто маленький пример того, как вы могли бы решить это

...