我在wordpress元关键关系和搜索参数方面遇到了一些问题。我不能让这个工作:
?meta_value=Dažādi&id=32&cp_city=Cēsis
搜索结果仅按meta_value过滤,而不是按cp_city和meta_value过滤。
cp_city也是元键值。
但是这个电话正在工作和过滤:
?meta_value=Pārdod&id=32
我需要通过两个或三个参数进行过滤。
这是要过滤的功能代码。
<?php
if (empty($pilseta)) {
$args=array(
'post_type' => 'ad_listing',
'post_status' => 'publish',
'meta_key' => 'cp_tips',
'meta_value' => $meta,
'paged' => $paged,
'tax_query' => array(
array(
'taxonomy' => 'ad_cat',
'terms' => $cat_id,
'field' => 'id'
)
)
);
}
else {
$args=array(
'post_type' => 'ad_listing',
'post_status' => 'publish',
'meta_query' => array(
array(
'meta_key' => 'cp_tips',
'meta_value' => $meta
),
array(
'meta_key' => 'cp_city',
'meta_value' => $pilseta
),
),
'paged' => $paged,
'tax_query' => array(
array(
'taxonomy' => 'ad_cat',
'terms' => $cat_id,
'field' => 'id'
)
)
);
}
query_posts($args);
&GT;
答案 0 :(得分:1)
您是否看到Wordpress生成的SQL查询知道是否可以?
在query_posts调用之后,输入:
<?php global $wpdb; echo $wpdb->last_query; ?>
如果WP写了一个意外的查询,我建议你使用posts_where过滤器和get_posts而不是query_posts
答案 1 :(得分:0)
更改下面的meta_key args文件并尝试:
'meta_query' => array(
array(
'key' => 'cp_tips',
'value'=> $meta
),
array(
'key'=> 'cp_city',
'value'=> $pilseta
)