这$_GET[\'variable\']
是一个数组,根据URL查询字符串?variable[]=value1&variable[]=value2
, $_GET[\'variable\'][0]
和$_GET[\'variable\'][1]
应返回这两个键值
编辑-讨论后-使其动态化
$meta_query = array();
if ( ! empty( $_GET["variable"] ) ) {
if ( is_array( $_GET["variable"] ) ) {
$meta_query[\'relation\'] = \'OR\';
foreach ( $_GET["variable"] as $value ) {
$meta_query[] = array(
\'key\' => \'my_post_field\',
\'value\' => sanitize_text_field( (string) $value ),
\'compare\' => \'=\'
);
}
} else {
$meta_query = array(
\'key\' => \'my_post_field\',
\'value\' => sanitize_text_field( (string) $_GET["variable"] ),
\'compare\' => \'=\'
);
}
}
$filter = array(
\'post_type\' => \'my_custom_post_type\',
\'meta_query\' => array(
\'relation\' => \'OR\',
$meta_query
)
);
$posts = new WP_Query( $filter );
我已将操作员更改为
=
因为我在测试它,它在我的本地安装上工作。
meta\\u compare(string)-用于测试“meta\\u值”的运算符。可能的值为“=”、“!=”、“>”、“>=”、\'<;\',\'<;=\',\'LIKE、NOT LIKE、IN、NOT IN、BETWEEN、NOT BETWEEN、NOT EXISTS、REGEXP、NOT REGEXP或RLIKE。默认值为“=”&mdash;codex