WordPressで特定のカスタムフィールドの値を持つ投稿の数を取得する

どこでも利用できるようにfunctions.phpに以下を記述してください。

//カスタムフィールドによる記事数取得
function loopPostCount( $post_meta_key = null ,$post_meta_value = null )
{
    $args = array(
        'post_type' => 'post',
        'meta_key' => $post_meta_key,
        'meta_value' => $post_meta_value,
        'posts_per_page' => -1
    );
    $meta_posts = get_posts($args);
    $count_post = 0;
    foreach ($meta_posts as $post) {
        $count_post++;
    }
    return $count_post;
}

利用方法

引数なしで利用すると全ての投稿数が取得できます。

<?php echo loopPostCount (); ?>

カスタムフィールドのキーとバリューを指定するとその値を持つ投稿数が取得できます。

ex.layoutというカスタムフィールドのキーの値が1Rの投稿数

<?php echo loopPostCount ('room_layout', '1R'); ?>

参考:特定のカスタムフィールドの値を持つ記事数をカウントする【wordpre】