我有一个名为ted_venue的自定义帖子类型,以及两个模板,single-ted_venue.php(单个场地详细信息)和page-venues.php(用于显示场地列表)。固定链接结构是site.com/venues/venue-slug,用于场地详细信息,site.com/venues用于场地列表。
这是场地列表中的分页代码:
$paged = get_query_var('paged') ? get_query_var('paged') : 1;
$wp_query = new WP_Query(array('post_type' => 'ted_venue',
'paged' => $paged,
'posts_per_page' => 30)
);
if ($wp_query->have_posts()):
?>
<ul>
<?php while ($wp_query->have_posts()): $wp_query->the_post(); ?>
...
然后在底部我添加一些分页链接。如果我转到site.com/venues/page/2,则会出现404错误。
然后,如果我将固定链接重置为默认值然后重置为当前,则场地列表分页工作正常,但单个场地细节不会。所以,基本上当分页作品时,单个场地不会和反之亦然。
有没有人知道可能发生的事情,或者至少可以指出我的文章或现场工作的例子吗?
谢谢!
答案 0 :(得分:4)
好的,这就是为什么它不能正常工作:
你正在拉入'paged',而WordPress仍然认为它在静态页面上,因此分页将永远是1.不幸的是,没有办法按照你现在的方式做你想做的事情,但还有其他解决方案。
基本上有两种方法可以解决这个问题:首先,你可以覆盖你的帖子类型自己生成的重写规则(这是最好的方法,但也是最复杂的,并且会涉及几天的工作,只是弄清楚如何重写引擎确实有效)。第二种方式(简单的方式也可以完美地工作,但不一定是最好的方式)是使用Matt Wiebe的“更智能的自定义帖子类型”代码:
答案 1 :(得分:0)
尝试添加'order_by' => 'menu_order'
,因为这是我可以在您的代码和others who have custom post pagination working (second post)中看到的唯一区别。