对于所有页面,WP_Query分页返回1

问题描述:

我正在使用WPeCommerce插件的网站上工作。分页已打破,它显示所有页面上的首页产品。起初,循环没有使用自定义查询,因此我添加了一个带有分页参数的文件,以查看它是否有帮助。但是当我打印查询时,paged总是返回1,即使我将它硬编码为像2这样的值。有人知道为什么会发生这种情况吗?对于所有页面,WP_Query分页返回1

<?php 
    $prodArgs = array(
     'post_type' => 'wpsc-product', 
     'wpsc_product_category' => 'shoes', 
     'posts_per_page' => 12, 
    ); 
    $prodArgs['paged'] = get_query_var('paged') ? get_query_var('paged') : 1; 
    $prodQuery = new WP_Query($prodArgs); 

    $temp_query = $wp_query; 
    $wp_query = NULL; 
    $wp_query = $prodQuery; 

    $count = 1; 
?> 
<div class="hidden"> 
    <pre> 
     <?php print_r($prodQuery); ?> 
    </pre> 
</div> 
+0

使用'var_dump'来调试'get_query_var'的值。 PHP的类型杂耍和布尔评估可能会有些棘手。 – Joshua

您应该在wp查询中添加paged参数。

$paged = (get_query_var('paged')) ? get_query_var('paged') : 1; 
$prodArgs = array(
         'post_type' => 'wpsc-product', 
         'wpsc_product_category' => 'shoes', 
         'posts_per_page' => 12, 
         'paged' => $paged 
        ); 

        $prodQuery = new WP_Query($prodArgs); 
+0

感谢您的回应。我也试过这个,但它不能解决问题。 –

+0

转储'$ paged'? – mokiSRB

+0

它在每个页面上返回int(1)。 –

我找到了解决方案。

<?php 
        $wp_query = array(
          'post_type' => 'wpsc-product', 
          'wpsc_product_category' => $thd_category->slug, 
          'posts_per_page' => 12, 
          'paged' => get_query_var('page') 
         ); 

        query_posts($wp_query); 

        $count = 1; 
       ?> 
       <?php if ($wp_query->have_posts()) while ($wp_query->have_posts()) : $wp_query->the_post(); ?>