Построение лесоматериалов по индивидуальному типу пост - PullRequest
0 голосов
/ 20 ноября 2018

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

Единственный способ, которым я получил пагинацию для вывода, - это добавить query_posts($args); после того, как я настроил свой запрос $args и перед тем, как передать их в новыйTimber\PostQuery но из всего, что я прочитал, я не должен этого делать.

Я прочитал эту тему выпуска , но, похоже, он полагается на использование WP_Query напрямую,и я стараюсь сделать эту задачу максимально простой.

Буду признателен за любые советы.

1 Ответ

0 голосов
/ 21 ноября 2018

Ну, я не вижу, где это задокументировано, но эта структура, кажется, сработала для меня (вызов pagination() в моей коллекции CPT):

$args = array(
  'post_type' => 'my_custom_post_type',
  'posts_per_page' => 5,
  'paged' => $paged
);
$myCollection = new Timber\PostQuery($args);
$context['collection'] = $myCollection;
$context['pagination'] = $myCollection->pagination();

Затем я должен настроитьRoutes::map для нумерации страниц, чтобы фактически работать.Вот пример:

function add_routes() {
  Routes::map(':name/page/:pg', function($params){
    $query = 'posts_per_page=1&post_type=page&paged='.$params['pg'];
    Routes::load('template-'.$params['name'].'.php', $params, $query);
  });
}

Я вызываю эту функцию из корня моего functions.php (т. Е. Не использую никаких хуков).

Я должен отметить, что это также позволяет мнечтобы по-прежнему получать page в моем контексте - на каждой постраничной странице - используя $post = new Timber\Post().Кажется, ключом является настройка маршрута с помощью posts_per_page=1 и post_type=page.Первоначально я запутался, настроив отображение маршрута так же, как мой запрос $args для разбитых на страницы CPT в моем шаблоне.

...