本文へ移動

用語集

WP_Query トラブル用語count mismatch

count mismatch は、WordPress の投稿一覧で、期待した件数と実際の表示件数、総件数、ページ数が合わない状態を指します。原因は1つとは限らず、posts_per_page、paged、offset、sticky posts、main query と custom query の混同などを順番に確認します。

Huddly Huddly 投稿日: 2026年8月15日 更新日: 2026年8月29日 読了目安: 3分

まず結論

count mismatch は、WP_Query の表示件数、総件数、ページ数が期待とずれる状態です。原因は posts_per_pagepagedoffset、sticky posts、main query と custom query の混同、pre_get_posts の影響などに分けて確認します。

WordPress の一覧で「10件表示のはずなのに9件しか出ない」「2ページ目が空になる」「ページリンクは3ページ分あるのに投稿が足りない」といった状態が起きることがあります。このような件数のズレを、この記事では count mismatch として整理します。

count mismatch は、見た目だけの問題ではありません。投稿を取得する条件、現在ページ番号、総ページ数、既存の main query、追加の custom query が関係します。原因を一度に探すのではなく、確認順を決めて切り分けることが大切です。

count mismatch は何を指す言葉か

count mismatch は、期待した件数と実際の件数が合わない状態です。WP_Query では、表示件数、取得件数、総件数、ページ数が別々に関係します。

たとえば、1ページ10件の一覧で9件しか出ない場合、posts_per_page だけでなく、除外条件、sticky posts、offset、ページネーション、投稿ステータスなどを確認する必要があります。

ここで大事なのは、「表示されている件数」と「クエリが持つ総ページ数」は別に確認することです。画面上のカード数だけ見ても、原因は分かりません。

特に custom query では、取得側の paged と、リンク側の paginate_links()current / total がずれていることがあります。

ズレの種類見え方主な確認ポイント
表示件数が少ない10件のはずが9件しか出ないposts_per_page、除外条件、sticky posts
2ページ目が空ページリンクはあるが投稿が出ないpagedmax_num_pagesoffset
ページ数が多い/少ないリンク数と実際の投稿数が合わない総件数、paginate_links()total
毎ページ同じ投稿が出るページ移動しても一覧が変わらないpaged が WP_Query に渡っているか

最初に確認する順番

count mismatch を調べる時は、確認順を決めます。いきなり複雑な tax_querymeta_query を疑うのではなく、まず件数とページ番号の基本から見ます。

おすすめの順番は、posts_per_pagepagedoffset、sticky posts、main query / custom query、pre_get_posts の影響です。基本条件から順番に確認すると、原因を見つけやすくなります。

この順番にすると、件数ズレの原因を広げすぎずに確認できます。特に offset はページネーションと組み合わせた時にズレの原因になりやすいため、早めに確認します。

また、既存のアーカイブ一覧を変えている場合と、独自 WP_Query で追加一覧を作っている場合では、確認する場所が変わります。どのクエリの件数がずれているのかを最初に見ます。

Builder での扱い

WP Query Builder では、count mismatch はエラー診断や注意表示として扱う想定です。生成コードで pagination を有効にする場合は、posts_per_pagepagedpaginate_links()max_num_pages をセットで出す必要があります。

また、offset を使う設定では、ページネーションとの相性に注意を出すべきです。初心者が「先頭1件を飛ばす」目的で offset を選ぶと、ページ数のズレにつながる可能性があります。

既存アーカイブを調整するモードでは、独自 WP_Query ではなく pre_get_posts を案内する場面もあります。追加一覧か既存一覧かを先に分けることが大切です。

使いどころ・避けどころと実践確認

画面の表示件数、post_countfound_posts、ページ総数のどれが違うのかを切り分ける時に使う観点です。

「件数が違う」を一括りにして、取得件数と総件数を同じ値として直そうとするのは避けます。

posts_per_pageoffset、固定表示投稿、no_found_rows は別々の段階へ作用するため、最初に比較している数値の定義を固定します。

表示中の件数と検索に該当した総件数は別物なので、最初にどの数字を直したいのかを言葉にします。

同じクエリで post_countfound_postsmax_num_pages、表示された投稿IDを出力し、期待値との差が生じた段階を記録します。

関連記事リンクのサムネイル

WordPressの仕様で確認するポイント

公式資料では、WP_Query Class で posts_per_pagepagedoffset などの引数を確認できます。現在ページ番号を取得する場合は get_query_var() を確認します。

既存の main query を調整する場合は pre_get_posts、ページ番号リンクを生成する場合は paginate_links() も合わせて確認します。

公式リンク

公式ドキュメント

count mismatch は、WP_Query の表示件数、総件数、ページ数が期待とずれる状態です。原因は複数あるため、確認順を固定して切り分けます。

迷った時は、まず最小構成で1件ずつ取得し、posts_per_pagepagedoffset、sticky posts、main query / custom query、pre_get_posts の順に確認します。

count mismatch の最終チェック

  • posts_per_page が意図どおりか確認した
  • pagination がある場合は paged を確認した
  • offset を使っている場合は一度外して確認した
  • sticky posts の影響を確認した
  • main query と custom query を混同していない
  • paginate_links()total が正しい総ページ数か確認した
  • pre_get_posts の影響を確認した

公式リファレンス

仕様や原文の説明も確認したいときは、公式ドキュメントと整理ページをあわせて見ると理解しやすくなります。

この記事の検証情報

検証環境

WordPress
7.1
PHP
8.3.33
テーマ
wpq-media + DDEV
対象
カスタム投稿 / taxonomy / meta_query

更新履歴

  • 2026年8月29日 本文と補助情報を更新
  • 2026年8月15日 初回公開

この用語を活用する

あとで見返す・共有する

お気に入りに保存できます。役に立ったポイントは、いいねや共有で教えてください。

他の用語も続けて確認できます

似た用語や周辺知識をまとめて見たいときは、用語集トップから探すと迷いにくくなります。

用語集トップを見る