我有以下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”字符串?
最合适的回答,由SO网友:Krzysiek Dróżdż 整理而成
您的代码中没有将“any”作为给定值的任何条件,因此它不会被视为any,而是被视为“any”。
但您的代码会检查给定值是否不为空,因此像这样传递它应该可以:
api.php?key=fruit,drink&value=,whiskey
另外,我不确定这是否是向api传递参数的最佳方式;)