WordPressでカテゴリーの記事カウント数が合わない・増えない原因と修正方法【実録トラブル解消】

カテゴリーのカウント数が5件と不整合になっている管理画面

WordPressでブログやWebサイトを運用していると、「記事一覧にはたくさん記事があるはずなのに、カテゴリー管理画面の『カウント数』が少ない(数字が合わない)」という現象に遭遇することがあります。

実際、当サイトでも「GoogleAppsScript (GAS)」カテゴリ内に200件以上の記事があるにも関わらず、カテゴリー一覧画面のカウント表示が「5」のまま固定されてしまうトラブルが発生しました。

今回は、このカテゴリーカウント数の不整合が起きる原因(WordPressの仕組み)と、プラグインを使わずに一瞬で正しい件数に再計算・修復する方法を分かりやすく解説します。

1. トラブルの現象:記事数とカテゴリーカウント数の不整合

WordPressの管理画面(投稿 > カテゴリー)を開くと、特定のカテゴリーの「カウント」欄の数値が異常に小さく表示されている状態です。

カテゴリーのカウント数が5件と不整合になっている管理画面
記事が多数あるにもかかわらず「カウント 5」と表示されてしまっている状態

しかし、投稿一覧画面(edit.php?category_name=gas)で絞り込み検索すると、実際には200件以上の記事が存在して正しく一覧表示されます。

2. なぜカウント数の不整合が起きるのか?(WordPress内部の仕組み)

この不整合は、WordPressがページ表示速度を保つために行っている「カウント数のメモ(キャッシュ)」の仕組みが原因です。

① WordPressはカウント数をあらかじめ「メモ」している

画面を開くたびに何千件もの記事データベースを毎回数え直すと、サーバーに大きな負担がかかりサイトの表示速度が落ちてしまいます。
そのため、WordPressはデータベース(wp_term_taxonomyテーブルの count カラム)に「現在の記事数メモ」を保持し、カテゴリー管理画面ではそのメモを表示しています。

② 外部連携や一括操作で「メモの更新」がスキップされる

WordPress管理画面から手動で投稿・公開した場合は、自動的にメモの数値が「+1」されます。
しかし、次のような操作を行った場合、メモを最新化する処理(wp_update_term_count)が動かず、古い数値のまま取り残されてしまうことがあります。

  • GAS(Google Apps Script)やREST API、Python等のスクリプトによる自動投稿
  • プラグインを使った記事の一括インポート・一括編集
  • データベースの直接移行・書き換え

3. プラグインなしでカテゴリーカウント数を再計算・修復する方法

この問題は、WordPressに「カウント数を最新の公開記事数で数え直して上書き保存する」指示を出すことで簡単に修復できます。

【方法1】カテゴリー編集画面で「更新」ボタンを押す(一番簡単な方法)

  1. 管理画面の「投稿」>「カテゴリー」を開きます。
  2. カウント数がズレているカテゴリーの「編集」をクリックします。
  3. 何も変更せずに、そのまま下部の「更新」ボタンを押します。

※カテゴリーの個別編集画面で更新を行うと、WordPress内部で自動的にカウントの再計算が実行され、最新の正確な数値に修復されます。

【方法2】functions.php に再計算コードを追加して実行する

方法1で直らない場合や、サイト全体の全カテゴリーを一括で再計算したい場合は、テーマの functions.php に一時的にコードを追加して実行します。

使用中のテーマの functions.php の末尾に以下のコードを貼り付けて保存します。

// カテゴリーカウントの強制再計算用処理(実行後に削除してください)
add_action('admin_init', function() {
    if (isset($_GET['recount_terms_secret'])) {
        $terms = get_terms(array('taxonomy' => 'category', 'hide_empty' => false));
        if (!empty($terms)) {
            $term_taxonomy_ids = wp_list_pluck($terms, 'term_taxonomy_id');
            wp_update_term_count_now($term_taxonomy_ids, 'category');
            wp_die('カテゴリーのカウント数を再計算しました!ブラウザの「戻る」で管理画面にお戻りください。');
        }
    }
});

保存後、ブラウザで https://eguchi.net/wp-admin/?recount_terms_secret=1 にアクセスします。

再計算完了メッセージ画面
実行後に「カテゴリーのカウント数を再計算しました!」と表示されれば完了です

完了後は、functions.php に追加したコードを忘れずに削除してください。

4. カウント数が正常な数値(200件超)に復旧!

再計算処理を行った後、再度カテゴリー一覧画面(投稿 > カテゴリー)を確認します。

カテゴリーのカウント数が正常に更新された管理画面
「5」だったカウント数が「209」へ正しく更新されました

無事に「5」から最新の正確な数値(209件)へと正常に修正されました!

まとめ

WordPressでカテゴリーの記事カウント数が合わなくなるトラブルは、データベース内のカウント用メモ(キャッシュ)が外部連携等によって更新漏れを起こしていることが原因です。

プラグインを新しく入れなくても、「カテゴリーの編集・更新」wp_update_term_count_now() による再計算」で簡単に解消できます。
自動投稿ツールや一括編集を使っている環境で数値のズレに気づいたら、ぜひ試してみてください!