使用自定义帖子类型的WordPress分页?

时间:2011-01-05 作者:user1147

我已经在网上搜索过了,想找到一些解决方案,但没有一个是适合我的,有人能帮我解决这个问题并解释一下是怎么回事吗?我花了3个小时调试,没有发现问题。

这是我的代码:

global $paged;
global $wp_query;
wp_reset_query();

$per_page = get_option(\'posts_per_page\');
$cat_cars = get_term_by(\'slug\', \'cars\', \'category\');
$page_links_total = ceil($cat_cars->count / $per_page);
$paged = (get_query_var(\'paged\')) ? get_query_var(\'paged\') : 1;

$args = array(
    \'post_type\' => \'cars\',
    \'post_status\' => \'publish\',
    \'cat\' => $cat_cars->term_id,
    \'orderby\' => \'date\',
    \'order\' => \'DESC\',
    \'posts_per_page\' => $per_page,
    \'paged\' => $paged
);

$page_links = paginate_links(array(
            \'base\' => add_query_arg(\'paged\', \'%#%\'),
            \'format\' => \'\',
            \'prev_text\' => __(\'«\'),
            \'next_text\' => __(\'»\'),
            \'end_size\' => 2,
            \'mid_size\' => 1,
            \'type\' => \'plain\',
            \'total\' => $page_links_total,
            \'current\' => $paged
        ));

$car_query = new WP_Query($args);
然后我打电话have_posts, the_post, 等等<这部分工作正常,直到我转到分页的第二页,却什么也找不到。

2 个回复
最合适的回答,由SO网友:Ben 整理而成

我最近遇到了一个类似的问题,并确定其原因是WordPress在查询某个类别中的帖子时,会在到达您查询post\\u类型“any”或某个自定义帖子类型之前,查找post\\u类型等于“post”的帖子。这不会导致第1页出现问题,因为即使没有帖子,它也会调用您的模板。但是,在第2页等等,它找不到任何post\\u类型的post,因此它会在模板有机会修改post\\u类型参数之前加载404模板。

这是虫子吗?这是个好问题。我这么说是因为你应该预料到,如果你在其他post\\u类型上注册“category”分类法,那么所有post\\u类型都会显示在该归档中,而不仅仅是严格意义上的post。

希望这会有所帮助。

SO网友:kevin

我在网站上有此代码(已清理),从自定义帖子类型调用帖子,如果有10多篇帖子,则在底部分页:

<?php $wp_query = new WP_Query();  $wp_query->query(\'post_type=mycpt&showposts=10\'.\'&paged=\'.$paged); 
while ($wp_query->have_posts()) : $wp_query->the_post();?>
<h3><?php the_title(); ?></h3>
<?php the_content();?>  
<?php endwhile; wp_reset_query(); ?>

<?php if (  $wp_query->max_num_pages > 1 ) { ?>
<div id="nav-below" class="navigation">
<div class="nav-previous"><?php next_posts_link( __( \'<span class="meta-nav">&laquo;</span> Dicas antigas\', \'twentyten\' ) ); ?></div>
<div class="nav-next"><?php previous_posts_link( __( \'Dicas mais recentes <span class="meta-nav">&raquo;</span>\', \'twentyten\' ) ); ?></div>
</div>
<?php } ?>
希望能有所帮助。

结束

相关推荐

Pagination with custom loop

我的问题可能是Pagination not working with custom loop, 但有一种不同。我使用自定义循环来显示flash游戏。我想按类别在游戏页面上分页。类别php:<?php if ($cat) { $cols = 2; $rows = 4; $paged = ((\'paged\')) ? get_query_var(\'paged\') : 1; $post_per_page = $cols * $rows; // -1 s