Timber использует неверные ссылки на страницы - PullRequest
0 голосов
/ 12 сентября 2018

Я пытаюсь использовать функции разбиения на страницы Timber, но отображаемые ссылки просто отправляют меня на страницу 404. Вот как я получаю список сообщений:

$posts = new Timber\PostQuery([
  'post_type' => 'event',
  'paged' => $paged,
  'posts_per_page' => 6,
]);
$context['posts'] = $posts;

И как я их отрисовываю:

{% if posts.pagination.pages is not empty %}
  <nav class="navigation" role="navigation">
    <ol class="pagination">
      {% if posts.pagination.prev %}
        {% include "wp/pagination/_pagination-link.twig" with {"class": posts.pagination.prev.class, "link": posts.pagination.prev.link, "title": "&larr;"} %}
      {% endif %}

      {% for page in posts.pagination.pages %}
        {% include "wp/pagination/_pagination-link.twig" with {"class": page.class, "link": page.link, "title": page.title} %}
      {% endfor %}

      {% if posts.pagination.next %}
        {% include "wp/pagination/_pagination-link.twig" with {"class": posts.pagination.prev.class, "link": posts.pagination.next.link, "title": "&rarr;"} %}
      {% endif %}
    </ol><!-- /.pagination -->
  </nav><!-- /.navigation -->
{% endif %}

Когда я захожу на страницу, путь URL-адреса равен /event/, а когда я нажимаю кнопку второй / следующей страницы, она ссылается на /event/page/2/, но Wordpress не запускает тот же файл php (archive-event.php).

Как настроить ссылки на страницы? Могу ли я переключить их, чтобы поместить страницу в запросе как /event?page=2?

1 Ответ

0 голосов
/ 13 сентября 2018

Проблема в конечном итоге связана с правилами перезаписи. Wordpress ожидал страницы с длиной 10 вместо 6. Добавление этого к functions.php устранило проблему:

function get_events($query)
{
    if(!is_admin() && $query->is_main_query() && is_post_type_archive('event')) {
        $query->set('posts_per_page', '6');
    }
}
add_action('pre_get_posts', 'get_events');
...