2017-02-14 5 views
0

私はWPeCommerceプラグインを使用するサイトで作業しています。ページ区切りが壊れている、それはすべてのページの最初のページの製品を示しています。最初はループがカスタムクエリを使用していなかったので、ページングされたパラメータを追加して役立つかどうかを確認しました。しかし、私はクエリを印刷するとき、ページ2は、2のような値にハードコードしても、常に1を返します。誰かがなぜこれが起こっているのか知っていますか?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

'get_query_var'の値をデバッグするのに' var_dump'を使用してください。 PHPの型ジャグリングとブール評価は、かなり難しいことがあります。 – Joshua

答えて

0

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)を返します。 –

0

解決策が見つかりました。

<?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(); ?> 
関連する問題