我有一个名为house的定制post类型。在这个post类型中,我有几个自定义字段,如:
(名称-字段类型-元键)
还有更多。
我有一个插件在我的网站上有4个选择:
我需要做的是,更新这些选择时,我选择一个选项。
例如,如果我选择巴塞罗那作为City,Sale用于Status,我需要检索所有类型和海滩,这些选项都是相同的。
我现在不需要得到帖子,只需更新选择选项,就像一个过滤器。
这里有一个例子:

PS:我在使用高级自定义字段。
发布于 2018-02-28 13:24:28
在与此斗争之后,我找到了一个可行的解决办法。
因为每个自定义字段都与我的自定义post类型有一个连接,所以我能够使用wp_get_object_terms来获取每个自定义分类法的术语。
使用查询检索所有帖子:
$args = array(
'post_type' => 'houses'
);
$houses = new WP_Query($args);
$posts = $houses->posts;
// get an array with all ID fields
$my_post_ids = wp_list_pluck($posts, 'ID');在此之后,我可以获得上述这些I的条件:
$city_terms = wp_get_object_terms($my_post_ids, 'cities');
$status_terms = wp_get_object_terms($my_post_ids, 'status');
$type_terms = wp_get_object_terms($my_post_ids, 'type');为了获得在选择选项以刷新选择信息时所需的行为,我只需更新该选项的查询。例如,如果我选择了某个城市:
$args = array(
'post_type' => 'houses',
'meta_query' => array(
'relation' => 'AND',
array(
'key' => 'city',
'value' => 107,
'compare' => 'LIKE'
)
)
);要执行筛选,只需要在meta_query数组中添加一个新的关系。
$args = array(
'post_type' => 'houses',
'meta_query' => array(
'relation' => 'AND',
array(
'key' => 'city',
'value' => 107,
'compare' => 'LIKE'
),
array(
'key' => 'status',
'value' => 80,
'compare' => 'LIKE'
)
)
);所有这些都与Ajax相结合,对每个选择进行数据更新。
https://wordpress.stackexchange.com/questions/294278
复制相似问题