WordPressで複数のカテゴリやカスタムフィールド、特定ユーザーの記事数をカウントし数字のみ取得したい時にfunction.phpに書いておくコード

スポンサーリンク

いろんなシチュエーションで記事数をカウントのみしたい時にfunction.phpに書いておいて、テーマphpファイル中で呼び出して使うと便利だよ。
たくさん使うと、たぶん重くなるのでお勧めできません・・・

カスタムフィールド値による記事数取得

function.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 ('カスタムフィールド名','カスタムフィールドの値'); ?>

カテゴリ名とカスタムフィールド値による記事数取得

function loopPostCountCategory( $post_meta_category = null ,$post_meta_key1 = null ,$post_meta_value1 = null)
{
    $args = array(
        'post_type' => 'post',
        'posts_per_page' => -1,
        'category_name' => $post_meta_category,
        'meta_query' => array(
            array(
                'key' => $post_meta_key1,
                'value' => $post_meta_value1
            )
        )
    );
    $meta_posts0 = get_posts($args);
    $count_post = 0;
    foreach ($meta_posts0 as $post) {
        $count_post++;
    }
    return $count_post;
}

テーマファイル内での呼び出し例

<?php echo loopPostCountCategory ('カテゴリスラッグ','カスタムフィールド名','カスタムフィールドの値'); ?>

カテゴリ名と複数のカスタムフィールド値による記事数取得

function.phpに書いておく

function loopPostCountCategory2( $post_meta_category = null ,$post_meta_key1 = null ,$post_meta_value1 = null ,$post_meta_key2 = null ,$post_meta_value2 = null ,$post_meta_key3 = null ,$post_meta_value3 = null  )
{
    $args = array(
        'post_type' => 'post',
        'posts_per_page' => -1,
        'category_name' => $post_meta_category,
        'meta_query' => array(
            array(
                'key' => $post_meta_key1,
                'value' => $post_meta_value1
            ),
            array(
                'key' => $post_meta_key2,
                'value' => $post_meta_value2
            ),
            array(
                'key' => $post_meta_key3,
                'value' => $post_meta_value3
            )
        )
    );
    $meta_posts3 = get_posts($args);
    $count_post = 0;
    foreach ($meta_posts3 as $post) {
        $count_post++;
    }
    return $count_post;
}

テーマファイル内での呼び出し例

<?php echo loopPostCountCategory2 ('カテゴリスラッグ','カスタムフィールド名1','カスタムフィールドの値1','カスタムフィールド名2','カスタムフィールドの値2','カスタムフィールド名3','カスタムフィールドの値3'); ?>

ユーザーニックネームと複数のカスタムフィールド値による記事数取得

function.phpに書いておく

function loopPostCountCategoryAuthor( $post_meta_author = null ,$post_meta_category = null ,$post_meta_key1 = null ,$post_meta_value1 = null )
{
    $args = array(
        'post_type' => 'post',
        'author_name' => $post_meta_author,
        'posts_per_page' => -1,
        'category_name' => $post_meta_category,
        'meta_query' => array(
            array(
                'key' => $post_meta_key1,
                'value' => $post_meta_value1
            )
        )
    );
    $meta_posts3 = get_posts($args);
    $count_post = 0;
    foreach ($meta_posts3 as $post) {
        $count_post++;
    }
    return $count_post;
}

テーマファイル内での呼び出し例

<?php echo loopPostCountCategoryAuthor ('ユーザーニックネーム','カスタムフィールド名','カスタムフィールドの値'); ?>

動かなかったらごめんなさい!

どうか自己責任で!

caay

最後まで読んでいただきありがとうございました!
こんな感じであまり気張らず、ダラダラと、楽しんでやっています。
どうぞよろしくお願いいたします。

もしちょっとでも!ほんのちょっとでも興味を持っていただけたなら!
下のボタンよりフォローお願い致します。
小躍りしながら喜びます!