我知道这个问题很含糊。让我解释一下:
我有一个页面,其中列出了所有具有特定自定义字段值的帖子。(例如:页面Rentals
列出具有该值的所有帖子rental
自定义字段的offer_type
).
我想添加一个按城市筛选的选项,这样只有特定值为city
显示自定义字段。为此,我使用get
方法生成自定义查询(在我的示例中,有两个自定义字段“offer\\u type”和“city”)。
What I need 是列出所有城市(值city
自定义字段),用于具有rental
的值offer_type
. 每个城市必须列出一次。
我尝试了这段代码(请注意,我将所有表单打包):
$metakey = \'city\';
$cities = $wpdb->get_col($wpdb->prepare("SELECT DISTINCT meta_value
FROM $wpdb->postmeta WHERE meta_key = %s ORDER BY meta_value ASC", $metakey) );
if ($cities) {
foreach ( $cities as $city ) {
echo $city;
}
}
但这列出了
city
所有帖子的自定义字段(例如,如果我有一篇帖子的值为
offer_type
不同于
rental
, 其价值
city
自定义字段将显示在我的列表中)。
我知道问题围绕着sql查询和连接表,但我确实缺乏解决这个问题的技能。
请帮忙!
SO网友:Will
查看WP\\U查询类的参考文档:http://codex.wordpress.org/Class_Reference/WP_Query
类似这样:
$args = array(
//some key/value pairs...whatever
\'meta_query => array(
array(
\'key\' => somekey,
\'value\' => somevalue,
\'compare\' => some comparison operator
),
array(
\'key\' => some other key,
\'value\' => some other value,
\'compare\' => some comparison operator
)
)
)
$my_query = new WP_Query( $args );
//some code to do something with the results of the query