2017-12-08 22 views
0

現時点で私は正しい結果を得られないWP_queryで頭を壊しています。WP_query配列内の複数の値に一致しません

私がしようとしているのは、配列に格納された値に基づいて結果を出すことです。

下記のコードをご覧ください。

// Array contents: 

// $size_array = Array 
// (
// [0] => 7 
// [1] => 4 
// [2] => 2 
// ) 

// $color_array : 
// Array 
// (
// [0] => red 
// [1] => blue 
// [2] => orange 
//) 

    $args = array(
    'numberposts' => -1, 
    'post_type'  => 'rondreizen', 
    'meta_query' => array( 
     'relation'  => 'AND', 
     array(
      'key'  => ‘size’, 
      'value'  => $size_array, 
      'compare' => 'LIKE' 
     ), 
     array(
      'key'  => ‘color’, 
      'value'  => $color_array, 
      'compare' => 'LIKE' 
     ) 
    ), 
    'orderby'   => 'date', 
    'order'    => 'DESC' 
); 

$shoes = new WP_Query($args); 
$posts = $shoes->posts; 

foreach($posts as $post) { 

} 

私は両方の値の1以上と一致していることの結果を取得しようとしています。たとえば、サイズ4の靴とオレンジ色の靴です。

現在のところ、配列に1つのアイテムしかないときに結果が得られます。私はまた、私たちに 'IN'比較メソッドを試みました。しかし、それは私にも結果をもたらしませんでした。

できるだけ明確に問題を説明しようとしました。誰も私を助けることを願っています。 :-)

ご不明な点がありましたらお知らせください。

+0

誰でも解決策がありますか?私はまだそれを働かせようとしています。残念ながら結果はまだありません。 – 0611nl

答えて

0
$args = array(
    'numberposts' => -1, 
    'post_type'  => 'rondreizen', 
    'meta_query' => array( 
     'relation'  => 'AND', 
     array(
      'key'  => ‘size’, 
      'value'  => $size_array 
     ), 
     array(
      'key'  => ‘color’, 
      'operator' => IN, 
      'value'  => $color_array 
     ) 
    ), 
    'orderby'   => 'date', 
    'order'    => 'DESC' 
); 

$shoes = new WP_Query($args); 
$posts = $shoes->posts; 

foreach($posts as $post) { 

} 
+0

残念ながら、それは動作しません。 - 私は 'operator' => INオプションを試しました。しかし、行は返されません。 – 0611nl

+0

これをチェックしてデバッグしてください。 https://stackoverflow.com/questions/37664245/dynamic-meta-query – omukiguy

+0

私はここに示した解決策を探しています:[link](https://wordpress.stackexchange.com/questions/183182/meta-query-しかし、私は、複数の値に基づいて相対的な「投稿」を見つけるための2つの配列を作ることを計画しています。それは奇妙な長いクエリを作成します。たぶん、私は定期的にMySQLのソリューションを調べる必要があります..しかし、WP_Queryははるかに良いでしょう。 – 0611nl

関連する問題