2017-01-19 115 views
0

我允許我的訪問者通過我的category.php上的價格過濾器來訂購帖子。他們有2個選項:「最大價格」和「最低價格」。當選擇一個過濾器時,查詢工作正常。分頁出現,但不能正常工作。它始終顯示在我的「頁面/ 2 /」,「頁面/ 3 /」上的第一篇文章...分頁和自定義WP查詢

我不知道爲什麼它不起作用你能幫我嗎?

<?php get_header(); ?> 
    <section id="primary" class="content-area"> 
     <main id="main" class="site-main" role="main"> 
      <header class="pages-header col-md-12"> 
       <h1 class="page-title"> <?php single_cat_title(); ?> </h1> 

        <?php echo get_field('petite_description_cat', 'category_' . $cat);?> 
       </header><!-- .page-header --> 

        <?php 
         //Display form for the query 
        if($_GET['minprice'] && !empty($_GET['minprice'])) 
         { 
          $minprice = $_GET['minprice']; 
         } else { 
          $minprice = 0; 
         } 

         if($_GET['maxprice'] && !empty($_GET['maxprice'])) 
         { 
          $maxprice = $_GET['maxprice']; 
         } else { 
          $maxprice = 999999; 
         } 
        ?> 

       <form method="get"> 
        <label>min:</label> 
         <input type="number" name="minprice" value="<?php echo $minprice; ?>"> 
        <label>max:</label> 
         <input type="number" name="maxprice" value="<?php echo $maxprice; ?>"> 
        <button type="submit" name="">Filter</button> 
       </form> 

<?php 
    // set up or arguments for our custom query 
    $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; 
     $args = array(
       'cat' => $cat, 
       'post_type' => 'post', 
       'posts_per_page' => 5, 
       'meta_query' => array(
         array(
         'key' => 'prix', 
         'type' => 'NUMERIC', 
         'value' => array($minprice, $maxprice), 
         'compare' => 'BETWEEN' 
          ), 
        ) 
       ); 
    // create a new instance of WP_Query 
    $the_query = new WP_Query($args); 
?> 

<?php if ($the_query->have_posts()) : while ($the_query->have_posts()) : $the_query->the_post(); // run the loop ?> 

    <?php 
    //on récupère le template 
    get_template_part('content-category', get_post_format()); ?> 


<?php endwhile; ?> 

<?php if ($the_query->max_num_pages > 1) { // check if the max number of pages is greater than 1 ?> 
    <div class="clearfix"></div> 

<?php //pagination 
bootstrap_pagination();?> 

<?php } ?> 

<?php else: ?> 
     <?php get_template_part('no-results', 'archive'); ?> 
    <?php endif; ?> 

<?php 
wp_reset_query(); 
//display description only on page 1 
    $page = (get_query_var('paged')) ? get_query_var('paged') : 1; 
    if ($page ==1) { echo category_description (get_category_by_slug ('category-slug')-> term_id); 
    } ?> 

    </main><!-- #main --> 
</section><!-- #primary --> 

<?php get_footer(); ?> 
+1

不應該將$ paged傳遞給您的$ args嗎? – hakamairi

+0

@BlazejChecinski是的,這是工作! – nicolaswecandoit

回答

0

解決方法只是在$ args!

'paged'   => $paged, 
+0

接受你的答案,如果它的工作亞;) – hakamairi