查询中的多个元键和值搜索

时间:2018-04-27 作者:l6ls

我有以下API代码用于$\\u请求

$metakey        = explode(\',\',$wpdb->escape($_REQUEST[\'key\']) );
$metavalue      = explode(\',\',$wpdb->escape($_REQUEST[\'value\']) );

$meta = array();

$i = -1;

foreach ($metakey as $key) {

    $i++; 

    if( $metavalue[$i] && trim($metavalue[$i]) != "")
        $meta[] = array( \'key\' => $key, \'value\' => $metavalue[$i] );
    else
        $meta[] = array( \'key\' => $key );

}

$meta[\'relation\'] = \'AND\';

$args = array();
$args[\'meta_query\'] = $meta;

$query = new WP_Query( $args );
它给出了正确的结果:

api.php?key=fruit,drink&value=cherry,whiskey
它给出了正确的结果fruit -> cherry and drink -> any:

api.php?key=fruit,drink&value=cherry
但该程序不适用于fruit -> any and drink -> whiskey:

api.php?key=fruit,drink&value=any,whiskey
如何通过meta_value 空值或“any”字符串?

1 个回复
最合适的回答,由SO网友:Krzysiek Dróżdż 整理而成

您的代码中没有将“any”作为给定值的任何条件,因此它不会被视为any,而是被视为“any”。

但您的代码会检查给定值是否不为空,因此像这样传递它应该可以:

api.php?key=fruit,drink&value=,whiskey
另外,我不确定这是否是向api传递参数的最佳方式;)

结束