我有一个关于 WP_Query 的问题。假设您有大量带有自定义字段的自定义帖子类型的帖子。其中一些自定义字段是地址信息,例如街道地址、城市和州。我想要做的是显示所有州的列表以及每个州有多少帖子。
我已经成功地获得了每个州的结果数量,但我看到了该州的多个列表。如果 WV 中有 3 条记录,我看到 WV 列出了 3 次。这对每个州都是一致的。
我正在尝试做类似“GROUP BY”的事情,但我没有成功。
我将部分困惑归咎于它是一个保存地址的自定义字段,所以我不确定如何按州对它们进行分组。
这是我的代码:
$stateqry = array(
'post_type' => 'plf',
'posts_per_page' => -1,
'orderby' => 'meta_value',
'meta_key' => 'state',
'order' => 'DESC',
'status' => 'published'
);
$loop = new WP_Query( $stateqry );
while ( $loop->have_posts() ) : $loop->the_post();
$firmName = get_the_title($post->ID);
$profileLink = get_permalink($post->ID);
$custom = get_post_custom($post->ID);
$addressLine1 = $custom["addressLine1"][0];
$addressLine2 = $custom["addressLine2"][0];
$city = $custom["city"][0];
$state = $custom["state"][0];
// get the PLF count by state
$getPLFs = $wpdb->get_results("SELECT * FROM $wpdb->postmeta
WHERE meta_key = 'state' AND meta_value = '$state'
GROUP BY meta_value" );
然后我正在尝试做一个foreach:
<?php foreach($getPLFs as $plf) {
$state_count = $wpdb->get_var("SELECT COUNT( meta_value ) FROM $wpdb->postmeta WHERE meta_key = 'state' AND meta_value = '$state' " );
?>
<div class="statebox <?php echo $state; ?>">
<h1><?php echo $state; ?>: <?php echo $state_count; ?></h1>
</div>
<?php } ?>
<?php endwhile; wp_reset_query(); ?>
有人对我如何修复我的查询以将各州分组并显示每个州的帖子数有一些建议吗?