2017-01-20 14 views
2

私のワードプレスで複数のメタキーフィルターを実装しようとしています。それはシンプルですが、私は自分の投稿をフィルタリングするフォームに価値を持っています。私がこれを実装しているのは、「価格」のクエリだけで完全に言葉遣いです。私が "ジャンル"を追加しても、何も働かない、クエリが機能しない。WPクエリと複数のキー

「ジャンル」フィールドでは、この構造の「カスタムフィールド」のチェックボックスを使用しています。「homme:Homme/femme:Femme」

私は私が私のクエリは、この

$args = array(
     'cat' => $cat, 
     'post_type' => 'post', 
     'posts_per_page' => 28, 
     'paged' => $paged, 
     'meta_query' => array(
      'relation' => 'AND', 

       array(
        'key' => 'prix', 
        'type' => 'NUMERIC', 
        'value' => array($minprice, $maxprice), 
        'compare' => 'BETWEEN' 
        ), 

       array(
        'key' => 'genre', 
        'value' => $genre, 
        'compare' => 'LIKE' 
        ) 
       ) 
      ); 
のように見えるこの

<?php 
    if($_GET['minprice'] && !empty($_GET['minprice'])) 
     { 
      $minprice = $_GET['minprice']; 
     } else { 
      $minprice = 0; 
     } 

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

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

から値を取得し、削除「価格」などのさまざまなものをテストして、あまりにも動作していない「ジャンル」のクエリ...

私のクエリで

マイループ

<?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' => 28, 
    'paged' => $paged, 
    'meta_query' => array(
     'relation' => 'AND', 

      array(
       'key' => 'prix', 
       'type' => 'NUMERIC', 
       'value' => array($minprice, $maxprice), 
       'compare' => 'BETWEEN' 
       ), 

      array(
       'key' => 'genre', 
       'value' => $genre, 
       'compare' => 'LIKE' 
       ) 
      ) 
     ); 

// 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 
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 bootstrap_pagination();?> 

<?php } ?> 

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

私はこれを試してみました。

$args = array(
      'cat' => $cat, 
      'post_type' => 'post', 
      'posts_per_page' => 28, 
      'paged' => $paged, 
      'meta_query' => array(
        array(
         'key' => 'prix', 
         'type' => 'NUMERIC', 
         'value' => array($minprice, $maxprice), 
         'compare' => 'BETWEEN' 
         ), 

        ) 
       ); 

しかし、それは私が私の心.... 感謝を失うメートルbeacause

$args = array(
      'cat' => $cat, 
      'post_type' => 'post', 
      'posts_per_page' => 28, 
      'paged' => $paged, 
      'meta_query' => array(   
       array(
         'key' => 'genre', 
         'value' => $genre, 
         'compare' => 'LIKE' 
         ) 
        ) 
       ); 

は、あなたが私を助けることができるしてください動作しません!

答えて

0

私はあなたがmeta_query

$args = array(
    'cat'   => $cat, 
    'post_type'  => 'post', 
    'posts_per_page' => 28, 
    'paged'   => $paged, 
    'meta_query'  => array(
     array(
     'relation' => 'AND', 
     array(
      'key'  => 'prix', 
      'type' => 'NUMERIC', 
      'value' => array($minprice, $maxprice), 
      'compare' => 'BETWEEN' 
     ), 
     array(
      'key'  => 'genre', 
      'value' => $genre, 
      'compare' => 'LIKE' 
     ), 
    ), 
    ), 
); 
+0

でラッピング配列が欠落しているおかげだと思いますが、私は同じことを持っている:クエリは動作しません... :( – nicolaswecandoit

関連する問題