WordPress メニューにカテゴリ、タグの数を表示する方法

Last Updated: 2024 年 06 月 27 日 6のコメント

WordPress サイトのメニューからカテゴリ文の数を表示したい場合があります。 ナビゲーションメニューに追加されたカテゴリーの項目に書かれ数(ポスト数)を表示したい場合は、次の記事で紹介する関数を使用することができます。

また、サイドバーにカテゴリリストを表示し、各カテゴリアイテムに投稿数を表示することもできます。カテゴリリストをドロップダウンメニューとして表示するように設定することもできます。

[この記事は2024年6月27日に最終更新されました。 ]

WordPress メニューにカテゴリー数を表示する方法

WordPressカテゴリをメニューに追加するには、 WordPress お知らせ»デザイン»メニュー (WordPress バージョンに応じて、 ルックス » メニュー)で目的のメニューを選択し、左側のパネルで「カテゴリ」を押して目的のカテゴリ項目を右にドラッグ&ドロップします。

WordPressカテゴリ項目を追加する

このようにカテゴリーの項目をメニューに追加すると、メニューにカテゴリ名が追加されます。 しかし、個々のカテゴリー内の記事数は表示されません。

WordPress メニューからカテゴリの個数を表示

上の図のように、カテゴリー項目の横に書かれ数が表示されるようにしたい場合は、次のようなコードを使用している WordPress テーマの関数ファイル(のfunctions.php)に追加するだけです(参考までに上記の「CSS」はカテゴリではないため、文数が表示されていません)。

チャイルドテーマを作ってチャイルドテーマの関数ファイルに次の関数を追加してください。 チャイルドテーマ(子テーマ、サブテーマ)ではない、親テーマ(本来のテーマ)内の関数ファイルにコードを追加する場合は、今後のテーマ更新時に追加または変更されたテーマファイルが初期化されます。

// Display post count for categories in WordPress menu navigations
// WordPress 메뉴에서 카테고리 항목에 글 개수 표시하기

add_filter('the_title', 'wpse165333_the_title', 10, 2);
function wpse165333_the_title($title, $post_ID)
{
if( 'nav_menu_item' == get_post_type($post_ID) )
{
if( 'taxonomy' == get_post_meta($post_ID, '_menu_item_type', true) && 'category' == get_post_meta($post_ID, '_menu_item_object', true) )
{
$category = get_category( get_post_meta($post_ID, '_menu_item_object_id', true) );
$title .= sprintf(' (%d)', $category->count);
}
}
return $title;
}

// Source: stackexchange

FTPにアクセスして、テーマの関数ファイルにコードを追加します。

get_post_metaはポトスのポストメタフィールドを取得する関数です(ここ 参照)、 get_categoryここを参考にしてみてください。

ちなみにCustom Taxonomyの場合、テストはしてみませんでしたが、 get_term_byを活用すればできることです(参照).

この記事で紹介されたコードスニペットは5年以上経っていますが、 WordPress バージョン(Avadaと、このブログに、現在インストールされている GeneratePress テーマ 使用)でテストしてみるとうまく動作することを確認しました(2024年6月現在)。

WordPress メニューにカテゴリとタグ項目の投稿数を表示する方法

上記のコードは、 WordPress メニューのカテゴリ項目に投稿数を表示します。カテゴリだけでなくタグ項目にも記事の数を表示する方法についてご不明な方がおり、上記のコードを少し修正してみました。次のコードをチャイルドテーマの関数ファイルに追加すると、カテゴリだけでなくタグ項目にも数が表示されます。

// Display Post Counts for Category and Tag Menu Items in WordPress

add_filter('the_title', 'custom_the_title', 10, 2);
function custom_the_title($title, $post_ID)
{
    if( 'nav_menu_item' == get_post_type($post_ID) )
    {
        $menu_item_type = get_post_meta($post_ID, '_menu_item_type', true);
        $menu_item_object = get_post_meta($post_ID, '_menu_item_object', true);
        
        if( 'taxonomy' == $menu_item_type )
        {
            if( 'category' == $menu_item_object )
            {
                $category = get_category( get_post_meta($post_ID, '_menu_item_object_id', true) );
                $title .= sprintf(' (%d)', $category->count);
            }
            elseif( 'post_tag' == $menu_item_object )
            {
                $tag = get_tag( get_post_meta($post_ID, '_menu_item_object_id', true) );
                $title .= sprintf(' (%d)', $tag->count);
            }
        }
    }
    return $title;
}

実際にテストしてみるとうまくいきました。

メニューにカテゴリとタグ項目の数を表示する

上の図では、カテゴリとタグ項目に投稿数が表示されていることを確認できます。ただし、「セキュリティ」はタグ項目ですが、文数が表示されていません。理由はわかりませんが、ディビーで少しねじれたようです。特別な場合を除き、うまく機能します。

サイドバーのカテゴリのリストにポスト数を表示する

サイドバーのカテゴリのリストを表示し、各カテゴリのアイテムに書か数を表示する場合 WordPress 管理者ページ » デザイン » ウィジェットでカテゴリウィジェットをサイドバーに追加し、「表示する投稿数」チェックボックスをチェックすると、カテゴリに投稿数が表示されます。

WordPress 5.8バージョンでは、ブロックウィジェットが導入されました。ブロックウィジェットを使用する場合 カテゴリ一覧 ブロック設定で表示する文の数をチェックすると、カテゴリの数が表示されます。

WordPress カテゴリリストに投稿数を表示する

階層の表示をチェックすると、上の図のように階層として表示されます。また、 ドロップダウンとしてマークを選択すると、カテゴリリストがドロップダウンメニューとして表示されます。

クラシックウィジェット(クラシックウィジェット)を使用している場合は、カテゴリウィジェットをサイドバーに追加して「表示する投稿数」をチェックできます。

WordPress サイドバーのカテゴリー記事数を表示

これにより、次のようにサイドバーのカテゴリのリストが表示され、個々のカテゴリーの項目にポストの数が表示されます。

WordPress サイドバーのカテゴリリストに追加 - カテゴリに含まれている記事数を表示

スタイルを調整するには CSS使用できます。基本的なCSSはそれほど難しくなく、学習に時間がかかりません。😄

WordPress 最新バージョンでは、ブロックウィジェットが使用されます。以前のウィジェット(クラシックウィジェット)が必要な場合は、クラシックウィジェットプラグインをインストールできます。

メモ:


6のコメント

コメント

  1. 良い情報ありがとうございます。もし数字のサイズが大きすぎるので、数字だけを別に減らす方法はないでしょうか?

    応答
  2. と不思議ですね〜次の必要かも分からなくてドラッグへいくよ〜
    良いポスティングありがとうございます!
    ひょっと任意制作したthumbnailや、ドラッグへ文が拒否感が召し上がるいつでも降りましょう。 ㅠ

    応答
      • ドラッグトップをので、コピーされた段落に、第 AdSense 広告が自動的にバクヒョソ非公開に切り替えた後、削除ヘトスプニダン。 私作成した文でもないのに、第広告が挿入されることが道理に反するようだから(笑)

        しかし、お気に入りおいたので、いつでも訪問して読み取ることができるでしょう?(笑)削除するとダメ! ふ