WordPressのpostsテーブルについて解説

 ·  ☕ 8 

ハローハロー! ハロウィンの予定はない! veilnuiです。

WordPressのデータベースまとめ第6回目。今回は「postsテーブル」です。
今回の内容は結構長いので、ご注意。

  1. commentmeta
  2. comments
  3. links
  4. options
  5. postmeta
  6. posts
  7. terms
  8. term_relationships
  9. term_taxonomy
  10. usermeta
  11. users

テーブルの概要

WordPress データの核である投稿記事のほか、ページ、ナビゲーションメニューのデータを格納

https://wpdocs.osdn.jp/データベース構造

  • 固定ページ
  • 投稿
  • ナビゲーションメニュー

このテーブルに保存するデータはこの3つです。
なお「メディアファイル」はデータベース上には保存されません

デフォルトのメディアファイルの保存場所

「wp-contentフォルダー>uploadsフォルダー」に保存されます。

僕はこの「3つのデータ」と「メディアファイル」を合わせて「コンテンツ」と呼んでいます。

依存しているテーブル、カラム

  • usersテーブル IDカラム

依存されているテーブル、カラム

  • commentテーブル comment_post_IDカラム
  • postmetaテーブル post_idカラム
  • term_relationshipテーブル object_idカラム
  • post_parentカラム

カラム構成

<td>
  コンテンツID
</td>

<td>
  bigint(20) unsigned
</td>
<td>
  製作者のユーザーID
</td>

<td>
  bigint(20) unsigned
</td>
<td>
  作成日時
</td>

<td>
  datatime
</td>
<td>
  作成日時(GMT)
</td>

<td>
  datatime
</td>
<td>
  本文、内容
</td>

<td>
  longtext
</td>
<td>
  タイトル
</td>

<td>
  text
</td>
<td>
  簡単な概要
</td>

<td>
  text
</td>
<td>
  コンテンツステータス
</td>

<td>
  varchar(20)
</td>
<td>
  コメントステータス
</td>

<td>
  varchar(20)
</td>
<td>
  pingステータス
</td>

<td>
  varchar(20)
</td>
<td>
  閲覧パスワード
</td>

<td>
  varchar(20)
</td>
<td>
  URLスラッグ
</td>

<td>
  varchar(200)
</td>
<td>
  pingの送信先
</td>

<td>
  text
</td>
<td>
  ping通知済みURL
</td>

<td>
  text
</td>
<td>
  更新日時
</td>

<td>
  datatime
</td>
<td>
  更新日時(GMT)
</td>

<td>
  datatime
</td>
<td>
  投稿内容のフィルター
</td>

<td>
  longtext
</td>
<td>
  親コンテンツのコンテンツID
</td>

<td>
  bigint(20) unsigned
</td>
<td>
  コンテンツIDを使ったURL。
</td>

<td>
  varchar(255)
</td>
<td>
  ページの表示順
</td>

<td>
  int(11)
</td>
<td>
  コンテンツの種類
</td>

<td>
  varchar(20)
</td>
<td>
  メディアファイルのMIMEタイプ
</td>

<td>
  varchar(100)
</td>
<td>
  コメント数
</td>

<td>
  bigint(20)
</td>
ID
post_author
post_data
post_data_gmt
post_content
post_title
post_excerpt
post_status
comment_status
ping_status
post_password
post_name
to_ping
pinged
post_modified
post_modified_gmt
post_content_filtered
post_parent
guied
memu_order
post_type
post_mine_type
comment_count

ID

<td>
  bigint(20) unsigned
</td>
<td>
</td>
<td>
  AUTO_INCREMENT
</td>
データ型
デフォルト値
備考

コンテンツIDです。

このテーブルに登録された各コンテンツを区別するカラムです。
それぞれのフィールドは「0以上の重複しない数字」がIDとして割り当てられます。

WordPressでは、このカラムを編集できません
phpMyAdminなどでデータベースにアクセスすることで、このカラムを編集できます

データベースに新たなレコードを追加するとき、または既存のフィールドを変更するときは、次のルールに従ってください。赤文字は絶対条件です

  1. 他のレコードと値が被らないこと
  2. 0の数字がIDとして割り当てられないこと(1以上のIDを割り当てること)
  3. オートインクリメント機能により「現在のレコード数+1」の値に設定すること
  4. このカラムに依存する他のテーブルも確認すること

データベースを編集するときは、IDが被らないように注意してください
IDが被ると、エラーが表示されてフィールドを編集することができません。

また、WordPressでは、IDが0のレコードをNULLとして使用します
そのため、IDが0のレコードは作成しないように注意してください。

WordPressでは、このカラムに依存しているテーブルがあります
こののカラムを編集したとき、次のテーブルとカラムも確認してください。

依存されているテーブル、カラム

  • commentテーブル comment_post_IDカラム
  • postmetaテーブル post_idカラム
  • term_relationshipテーブル object_idカラム

post_author

<td>
  bigint(20) unsigned
</td>
<td>
</td>
データ型
デフォルト値

コンテンツの作者です。
コンテンツを作成したユーザーのIDです。
このカラムは次のテーブルのカラムを使っています

依存しているテーブル、カラム

  • usersテーブル IDカラム

post_data

<td>
  datatime
</td>
<td>
  0000-00-00 00:00:00
</td>
データ型
デフォルト値

コンテンツの作成日時です。フォーマットは「各国の標準時」です。

post_data_gmt

<td>
  datatime
</td>
<td>
  0000-00-00 00:00:00
</td>
データ型
デフォルト値

コンテンツの作成日時です。フォーマットは「世界標準時(グリニッジ標準時)」です。

post_content

<td>
  longtext
</td>
<td>
</td>
データ型
デフォルト値

コンテンツの内容です。フォーマットはHTMLです。

文字数換算で約4,294,967,296文字までのコンテンツを保存できます。
ただし、日本語などのマルチバイト文字は保存できるコンテンツ量が少なくなります。
また、HTML形式で保存するため、実際は4,294,967,296文字も保存できません

文字数換算とは?

本来「longtext型」は「文字数」ではなく「バイト」と呼ばれる単位でデータを保存しています。
しかし「バイト」で表現するよりも「文字数」で表現したほうが分かりやすいです。
そのため「実際に何文字保存できるか」で表現しています。

post_title

<td>
  text
</td>
<td>
</td>
データ型
デフォルト値

コンテンツのタイトルです。

約65,535文字までの名前を付けられます。

post_excerpt

<td>
  text
</td>
<td>
</td>
データ型
デフォルト値

コンテンツの概要、すなわち「大まかな内容」です。

約65,535文字までの概要を付けられます。

post_status

<td>
  varchar(20)
</td>
<td>
  publish
</td>
データ型
デフォルト値

コンテンツのステータスです。
デフォルトでは「公開済み」のステータスが割り当てられます。

<td>
  公開済み(デフォルト)
</td>
<td>
  承認待ち
</td>
<td>
  下書き
</td>
<td>
  非公開
</td>
<td>
  メディアファイル
</td>
<td>
  継承
</td>
<td>
  予約投稿
</td>
<td>
  ごみ箱
</td>
<td>
  自動保存
</td>
publish
pending
draft
private
attachment
inherit
future
trash
auto-draft

publish

公開済みです。誰でも見ることができます。
デフォルトでは、このステータスです。

pending

承認待ちです。承認されると「publish(公開済み)」になります。

draft

下書きの状態。編集者以上の権限を持つユーザーが見れます。

private

非公開です。管理者以上の権限を持つユーザーが見れます。

attachment

添付ファイルに付くステータスです。

inherit

添付ファイル、リビジョンに付くステータスです。親投稿のステータスを引き継ぎます。

future

予約投稿です。公開されると、「publish(公開済み)」になります。

trash

ごみ箱の中にある状態です。
以前のステータスに関係なく、ごみ箱に入れるとこのステータスになります。
ごみ箱を空にするとコンテンツはなくなります。

auto-draft

WordPressが自動保存したデータです。リビジョン(履歴)、オートセーブ(自動保存)に割り当てられます。

comment_status

<td>
  varchar(20)
</td>
<td>
  open
</td>
データ型
デフォルト値

投稿、固定ページのコメント受け付け状態です。
デフォルトでは、すべての人にコメント投稿を許可します。

<td>
  許可(デフォルト)
</td>
<td>
  不許可
</td>
<td>
  登録者のみ
</td>
open
closed
registered_only

open

すべての人にコメント投稿を許可します。
デフォルトでは、このステータスです。

closed

特権管理者を含め、すべてのユーザーのコメントの投稿を禁止します。

registered_only

登録したユーザーのみコメントを許可します。

ping_status

<td>
  varchar(20)
</td>
<td>
  open
</td>
データ型
デフォルト値

「ピンバック」の受け付け状態です。
デフォルトでは、ピンバックを受け付けます。

<td>
  ピンバックを受け付けます(デフォルト)
</td>
<td>
  ピンバックを受け付けません
</td>
open
closed

post_password

<td>
  varchar(255)
</td>
<td>
</td>
データ型
デフォルト値

コンテンツをパスワードで保護します

パスワードを設定しない場合は、誰でも閲覧できます。
パスワードを設定した場合は、パスワードを知っている人だけが閲覧できます。

post_name

<td>
  varchar(200)
</td>
<td>
</td>
データ型
デフォルト値

コンテンツの「パーマリンク」です。
パーマリンクは半角英数字のみで設定することをおすすめします。

varchar(200)型のため、200文字までのパーマリンクを付けられます。
ただし、日本語などのマルチバイト文字は登録できる文字数が少なくなります。
また、日本語は「ピュニコード(Punycode)」に自動エンコードされます。

to_ping

<td>
  text
</td>
<td>
</td>
データ型
デフォルト値

「ピンバック」の送信先です。

pinged

<td>
  text
</td>
<td>
</td>
データ型
デフォルト値

「ピンバック」の送信済みのURLのリストです。

post_modified

<td>
  datatime
</td>
<td>
  0000-00-00 00:00:00
</td>
データ型
デフォルト値

コンテンツの更新日です。フォーマットは「各国の標準時」で保存します。

post_modified_gmt

<td>
  datatime
</td>
<td>
  0000-00-00 00:00:00
</td>
データ型
デフォルト値

コンテンツの更新日です。フォーマットは「世界標準時(グリニッジ標準時)」で保存します。

post_content_filtered

<td>
  datatime
</td>
<td>
  0000-00-00 00:00:00
</td>
データ型
デフォルト値

コンテンツのフィルターです。
「フィルター」とは何のことでしょうか? 検索の絞り込みかな?
知っている人、いたら教えて下さい。

post_parent

<td>
  bigint(20) unsigned
</td>
<td>
</td>
データ型
デフォルト値

親コンテンツのIDです。
デフォルトでは「0(=NULL、親コンテンツなし)」です。

<td>
  親ページID
</td>
<td>
  親ページID
</td>
<td>
  属する投稿、固定ページのID
</td>
<td>
  投稿、固定ページのID
</td>
<td>
  投稿、固定ページのID
</td>
投稿
固定ページ
添付ファイル
リビジョン(履歴)
オートセーブ(自動保存)

依存元

  • IDカラム

guid

<td>
  varchar(255)
</td>
<td>
</td>
データ型
デフォルト値

コンテンツのURLです。
パーマリンクとは違い、WordPressが自動で作成します
フォーマットは次の2つです。

<td>
  page_id=[id]
</td>
<td>
  p=[id]
</td>
固定ページ
投稿

memu_order

<td>
  int(11)
</td>
<td>
</td>
データ型
デフォルト値

ナビゲーションメニュー作成時のみ使われます。
メニューに表示するコンテンツIDです。

post_type

<td>
  varchar(20)
</td>
<td>
  post
</td>
データ型
デフォルト値

コンテンツの種類です。
デフォルトでは「投稿」が割り当てられます。

<td>
  投稿
</td>
<td>
  固定ページ
</td>
<td>
  添付ファイル
</td>
<td>
  リビジョン(履歴)、オートセーブ(自動保存)
</td>
<td>
  メニューを構成する要素
</td>
post
page
attachment
revision
navi_memu_item

「投稿」と「固定ページ」は相互変換できますが、WordPressに標準で変換する機能がありません
プラグインまたはデータベースの編集で変換することができます。

post_mime_type

<td>
  varchar(100)
</td>
<td>
</td>
データ型
デフォルト値

MIMEタイプ(拡張子)を保存します。メディアファイルのみ使われます

comment_count

<td>
  bigint(20)
</td>
<td>
</td>
データ型
デフォルト値

コンテンツに投稿されたコメントの総数です。

参考サイト

http://wpdocs.osdn.jp/%e3%83%87%e3%83%bc%e3%82%bf%e3%83%99%e3%83%bc%e3%82%b9%e6%a7%8b%e9%80%a0  


veilnui
veilnui