我的帖子列表中有多个过滤器。我让过滤器像这样工作:
add_filter( 'parse_query','event_table_filter' );
function event_table_filter( $query ){
$type = 'event';
if (isset($_GET['post_type'])) {
$type = $_GET['post_type'];
}
if ( 'event' == $type && is_admin() && isset($_GET['ADMIN_FILTER_FIELD_LOCATION']) && $_GET['ADMIN_FILTER_FIELD_LOCATION'] != '') {
$query->query_vars['meta_key'] = 'location';
$query->query_vars['meta_value'] = $_GET['ADMIN_FILTER_FIELD_LOCATION'];
}
if ( 'event' == $type && is_admin() && isset($_GET['ADMIN_FILTER_FIELD_FEATURED']) && $_GET['ADMIN_FILTER_FIELD_FEATURED'] != '') {
$query->query_vars['meta_key'] = 'position';
$query->query_vars['meta_value'] = $_GET['ADMIN_FILTER_FIELD_FEATURED'];
}
}
现在,我的 2 个过滤器(位置和位置)正在单独工作。
如果我尝试按位置 AND
Location进行过滤,则它仅按似乎是最后一个查询(位置)的内容进行过滤。
我怎样才能让我的查询考虑到每个过滤器?