SEブログ

【WordPress】カテゴリの記事数を表示する

こんにちは!

 

私のブログで記事数をトップページに表示できるようにしましたが、備忘録として残しておきたい事がありましたので忘れずに書いておきます。

 

記事数を取得する方法として、ここではプラグインを使わず、PHP を使う事といたします。

表示する処理は 便宜的に index.php とし、記事数を取得してくる処理は、function.php 側で書きました。

 

 

単一カテゴリの記事数を取得したい場合

 

単一カテゴリの記事数を取得したい場合は、get_categories のパラメーターである parent で取得できます。

また、配列で処理しますが、parent のデフォルト値は 空 になっていますので、0 に変更します。

 

get_categories パラメーターのデフォルト値

$args = array(
    'parent' => 0
); 

 

index.php

<?php $parent_categories = get_categories(); ?>;
<?php foreach ($parent_categories as $parent_category) { ?>
    <p>記事数は<?php echo $parent_category->;count; ?>件です。</p>

 

function get_parent_categories(){
    $args = array(
        'parents' =>; 0
    );
    $categories = get_categories($args);
    $parent_categories = array();
    foreach ($categories as $category) {
        if($category->parent === 0) {
        $parent_categories[] = $category;
        } 
    }
    return $parent_categories;
}

 


親カテゴリとその入れ子になっている子カテゴリの記事数を取得したい場合

 

親と子カテゴリの記事数を取得したい場合は、get_categories のパラメーターである pad_counts と使います。

また、配列で処理しますが、pad_counts のデフォルト値は false になっていますので、true に変更します。

 

get_categories パラメーターのデフォルト値

$args = array(
    'pad_counts' => false 
); 

 

 

index.php

<?php $parent_categories = get_categories(); ?>
<?php foreach ($parent_categories as $parent_category) { ?>
    <p>記事数は<?php echo $parent_category->count; ?>件です。</p>;

 

function.php

function get_parent_categories(){
    $args = array(
        'pad_counts' => true
    );
    $categories = get_categories($args);
    $parent_categories = array();
    foreach ($categories as $category) {
        if($category->parent === 0) {
        $parent_categories[] = $category;
        } 
    }
    return $parent_categories;
}

 

子カテゴリの記事数を取得したい場合

 

単一の子カテゴリの記事数のみ取得したい場合は、以下のように get_categories で 変数にデータを格納し、foreach で親カテゴリがないもののみ取得します。

 

index.php

<?php $child_categories = get_child_categories(); ?>
<?php foreach ($child_categories as $child_category) { ?>
    <p><?php echo $child_category->category_count; ?></p>

 

function.php

function get_child_categories(){
    $categories = get_categories();
    $child_categories = array();
    foreach ($categories as $category) {
        if($category->parent !== 0) {
            $child_categories[] = $category;
        } 
    }
    return $child_categories;
}

 

 

いかがでしょうか。

 

記事数を取得する場合は、get_categories を使い、親カテゴリのみや親と子カテゴリの記事数を取得したい場合は get_categories のパラメーターを配列で使いました。

子カテゴリの記事数を取得する場合は、親カテゴリがないもののみ foreach で取得しました。

カテゴリによってこのような形で処理する事により、適切な記事数が取得できると思います。

 

また get_categories のパラメータの一覧が WordPress Codex で確認できますのでリンクを貼っておきました。

関数リファレンス/get categories | WordPress Codex 日本語版

https://wpdocs.osdn.jp/関数リファレンス/get_categories

 

 

では最後までお読みいただきありがとうございました!