WordPressで記事IDが連番にならない理由

WordPress個別サポート

WordPressで作成した記事のID(投稿ID)や固定ページのIDは連番にならないことが多いです。123番の記事の次の記事は150番だったりします。番号が飛んで気持ち悪く思うかもしれませんが、その理由を簡単に説明します。

WordPressの記事IDは投稿と固定ページで共有されている

まず、WordPressの基本的な仕組みですが、投稿や固定ページなど、管理画面から入力した内容はデータベースに保存されます。

管理画面から入力した内容はデータベースに保存される
管理画面から入力した内容はデータベースに保存される

データベースにはデータを保存する箱(テーブル)がいくつも存在しますが、投稿と固定ページは同じテーブル(wp_postsテーブル)に保存されます。次のようなイメージです。

投稿と固定ページは同じテーブルに保存される
投稿と固定ページは同じテーブルに保存される

テーブルのデータには行を識別するIDが付いています。上記の例では373~375までの番号になっています。ここで重要なのは、投稿と固定ページでIDを共有していることです。そのため、投稿のIDは連番になりません。

管理画面では次のように続いている投稿でもIDが連番にならないのは、そのためです。

続けて書いた投稿のIDは連番とは限らない
続けて書いた投稿のIDは連番とは限らない

記事IDはメディアやカスタムメニューでも共有されている

IDを共有しているのは投稿と固定ページだけではありません。メディアライブラリやカスタムメニューなどでも共有されています。

WordPressのデータベースを参照できるなら、wp_postsテーブルのpost_typeフィールドを見るとわかります。さまざまな種類のデータでIDが共有されていることがわかります。

IDは幅広いデータで共有されている
記事IDは幅広いデータで共有されている

記事が100件しかないのにIDが999などになってしまうのは、このためです。ですから、「記事IDを連番にしたい」などとは考えない方が良いですね。

カテゴリーIDはwp_termsに

ちなみに、カテゴリーIDはwp_termsテーブルを見るとわかります。term_idフィールドがカテゴリーIDです。このデータから「投稿」‐「カテゴリー」メニューが作られています。

カテゴリーIDはwp_termsテーブルに
カテゴリーIDはwp_termsテーブルに

2016年10月8日WordPressデータベース記事ID