具有自定义帖子类型的木材分页

时间:2018-11-20 20:28:42

标签: pagination custom-post-type timber

我正在尝试使用pagination with a custom post type的Timber文档中显示的示例。这不符合我的预期。

获得分页输出的唯一方法是在设置查询query_posts($args);之后,将它们传递到新的$args之前,先添加Timber\PostQuery,已经读过,我不应该这样做。

我已经阅读了issue thread,但是它似乎直接依赖于WP_Query,并且我试图使这一任务尽可能简单。

任何提示将不胜感激。

1 个答案:

答案 0 :(得分:0)

好吧,我看不到它的记录位置,但是这种结构似乎对我有用(在我的CPT集合中调用pagination()

$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=1post_type=page设置路线。最初,我通过为模板中的分页CPT设置与我的查询$args相同的路由映射来使自己感到困惑。