我正在使用自定义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
从该函数。
现在,谁能告诉我一些方向,因为我不知道。
最合适的回答,由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;