确定是否有比`Query_Posts()`中要求的更多的帖子?

时间:2012-06-13 作者:Anriëtte Myburgh

我正在使用自定义query_posts() 作用我限制了showposts 参数设置为25,那么如果仍有产品(帖子)要加载,如何知道激活分页?

我的query_posts() 代码如下所示:

$args = array(
    \'post_type\' => \'product\',
    \'taxonomy\' => \'product_cat\',
    \'term\' => $idObj->slug, // category slug
    \'showposts\' => 25,
    \'orderby\' => \'title\',
    \'order\' => \'asc\',
    \'paged\' => $paged  // global $paged variable
);

$all_products = query_posts( $args );
然后我使用foreach 声明:

foreach ($all_products as $product) {...}
我把这个function 在我的functions.php, 但是$paged 也没有$max_pages 似乎没有设置。所以我得到false 从该函数。

现在,谁能告诉我一些方向,因为我不知道。

1 个回复
最合适的回答,由SO网友:Eugene Manuilov 整理而成

首先:不要使用query_post!

有关更多信息,请阅读:When should you use WP_Query vs query_posts() vs get_posts()?

使用WP_Query 类来获取您的产品,还请注意showposts 参数已弃用,请使用posts_per_page 而是:

$args = array(
    \'post_type\' => \'product\',
    \'taxonomy\' => \'product_cat\',
    \'term\' => $idObj->slug, // category slug
    \'posts_per_page\' => 25,
    \'orderby\' => \'title\',
    \'order\' => \'asc\',
    \'paged\' => $paged  // global $paged variable
);

$all_products = new WP_Query( $args );

// The Loop
while ( $all_products->have_posts() ) : $all_products->the_post();
    // do stuff here...
endwhile;

// Reset $post global
wp_reset_postdata();
要获取找到的帖子总数,请使用$found_posts 所有物如果需要总页数,请使用$max_num_pages 所有物

$found_posts = $all_products->found_posts;
$max_pages = $all_products->max_num_pages;

结束

相关推荐