我正在将此查询用于我的循环,并且它正在工作,除非meta_value
为空。在这种情况下,它返回空结果。相反,我希望在meta_value
为空。
这是我的密码
$query = new WP_Query( array(
\'post_type\' => \'my_post_type\',
\'meta_query\' => array(
array(
\'key\' => \'state\',
\'value\' => \'Alabama\',
),
array(
\'key\' => \'country\',
\'value\' => $region,
),
),
) );
我想在可变区域为空时获得阿拉巴马州的所有结果。如果您对此有任何建议,我们将不胜感激。
SO网友:Krzysiek Dróżdż
如果我正确理解了您的问题,您只想在以下情况下查询region字段$region
变量不为空?如果是这样的话,这应该是可行的,而且它将比您建议的代码漂亮得多:
$meta_query = array(
array(
\'key\' => \'state\',
\'value\' => \'Alabama\',
),
);
if ( $region ) {
$meta_query[] = array(
\'key\' => \'country\',
\'value\' => $region,
);
}
$query = new WP_Query( array(
\'post_type\' => \'my_post_type\',
\'meta_query\' => $meta_query
) );
SO网友:wplearner
这个代码对我有用
$query = new WP_Query( array(
\'post_type\' => \'my_post_type\',
\'meta_query\' => array(
array(
\'key\' => \'state\',
\'value\' => \'Alabama\',
),
array(
\'key\' => \'country\',
\'value\' => $region,
\'compare\' => $region ? "=" : "!=",
),
),
));