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(); ?>
クエリを修正して州をグループ化し、各州の投稿数を表示する方法について誰か提案がありますか?