【发布时间】:2018-09-02 20:57:07
【问题描述】:
我的网站中有过滤器: My filter form
过滤算法是: Filtering algorithm
该算法的 PHP 代码:
$GLOBALS['my_query_filters'] = array(
'field_1' => 'work',
'field_2' => 'visa'
);
add_action('pre_get_posts', 'my_pre_get_posts', 10, 1);
function my_pre_get_posts( $query ) {
if(is_admin()) return;
if(!$query->is_main_query()) return;
$meta_query = $query->get('meta_query');
$tax_query = $query->get('tax_query');
$k = 0;
foreach($GLOBALS['my_query_filters'] as $key => $name) {
if(empty($_GET[$name])) continue;
$value = explode(',', $_GET[$name]);
foreach($value as $item) {
$meta_query[$k] = array(
'key' => $name,
'value' => $item,
'type' => 'CHAR',
'compare' => 'LIKE'
);
$k++;
}
}
if($_GET['cat']) {
$tax_query[] = array(
array(
'taxonomy' => 'category',
'field' => 'id',
'terms' => $_GET['cat'],
'operator' => 'IN'
)
);
$query->set('tax_query', $tax_query);
}
$query->set('meta_query', $meta_query);
}
但我需要将过滤算法更改为: New filtering algorithm
我不太了解 WP_Query()。你能帮我编辑 $meta_query 吗?
【问题讨论】:
标签: wordpress filter filtering advanced-custom-fields