【问题标题】:WP_query no matches on multiple values in arrayWP_query 在数组中的多个值上不匹配
【发布时间】:2017-12-08 10:47:40
【问题描述】:

目前,我正在为一个没有给我正确结果的 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”比较方法。但这也没有给我任何结果。

我试图尽可能清楚地描述这个问题。希望任何人都可以帮助我。 :-)

如果您有任何其他问题,请告诉我。

【问题讨论】:

  • 有人有解决办法吗?我仍在努力让它发挥作用。很遗憾,还没有结果。

标签: php mysql wordpress


【解决方案1】:
$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) {

}

【讨论】:

  • 不幸的是它不起作用。 - 我尝试了 'operator' => IN 选项。但它不返回任何行。
  • 我一直在研究这里给出的解决方案:link - 但是,我计划制作几个数组来查找基于多个值的相对“帖子”。这将创建一个疯狂的长查询。也许我必须研究一个常规的 mysql 解决方案。但 WP_Query 会好得多。
猜你喜欢
  • 2017-11-17
  • 2012-04-24
  • 1970-01-01
  • 2022-01-17
  • 1970-01-01
  • 1970-01-01
  • 2015-05-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多