【WordPress】投稿した記事の本体【SQL】

「WordPressって、投稿した記事をどこに保存しているのかなあ?」と興味をもったので、調べてみました。Web情報によると、WordPressでは投稿した記事はHTML化されず、SQLサーバに保存されているようです。サーバにアクセスがあったら、URLをもとに動的にHTMLを作成して表示する仕組みらしいです。ということは、SQLサーバに入ればよいということ?

IDとパスワードを調べる

まずはSQLの世界にログインするためのIDとパスワードを調べます。

自分のホームページのファイルサーバにログインして、WordPressをインストールしたフォルダの下にあるwp-config.phpを確認します。

私のこのサイトの場合は、kn-sharoushi.comの下にあるpublic_htmlフォルダの中にありました。

public_htmlにあるwp-config.php

ダウンロードし、テキストエディタで開きます。私は秀丸を愛用しています。

wp-config.phpでユーザ名とパスワードを確認

IDとパスワードはどこかにメモしておきます。

サーバーパネルにログイン

いよいよSQLにログインします。まずはサーバー管理画面にログインします。

私はXserverを利用していますので、こんな感じの画面です(画像の一部は加工してあります)。

phpmyadminを起動する

この中のphpmyadminをクリックします。すると、ユーザIDとパスワードを求められるので、先ほどメモしておいた値を入力します。すると、phpMyAdminという画面が開きます。

phpMyAdminの画面

phpMyAdminの画面はこんな感じです(画像の一部を加工してあります)。

phpMyAdminの画面

左側にツリーがあるので開いてみると、どうもテーブル名っぽいです。

テーブルをクリックしたところ(画像の一部を加工してあります)

左側にあるツリーのうちのテーブル名っぽいところをクリックすると、右側のペインにテーブルの中身っぽい情報が表示されました。

上の方に小さく「SELECT * FROM ‘wp_posts’」とありますし、やはり左側ペインがテーブル一覧、右側ぺインが詳細情報ということのようです。

SQLが使えるなら、describeしてみれば話が早いので、やってみました。

SQLペイン

SQLタブをクリックして、SQL文を書くところにDESCと記述します(DESまで記入すればインテリジェンスがきいて、候補がいくつか出るので、そこから選べばよいです)。

SQLペインを使ってみた(画像の一部を加工してあります)
descコマンドを入れたところ

desc△(半角スペース)テーブル名で;(ひげ)は必要か必要でないか分からなかったので、一応つけました。

右下隅にある実行を押すと、

wp_postsのテーブル定義(画像の一部を加工してあります)

wp_postsテーブルのdesc情報が表示されました。

wp_postsテーブル

下記にwd_postsテーブルのカラムについて、ざっくりとした私の理解を載せておきます。

FieldType意味
IDbigint(20) unsigned投稿ID
post_authorbigint(20) unsigned記事を投稿した筆者のID
post_datedatetime投稿日付
post_date_gmtdatetime投稿日付(GMT)
post_contentlongtext投稿した記事の中身
post_titletextタイトル
post_excerpttext抜粋
post_statusvarchar(20)投稿ステータス
comment_statusvarchar(20)コメントステータス
ping_statusvarchar(20)トラックバックステータス
post_passwordvarchar(255)投稿パスワード
post_namevarchar(200)URLの最後の部分
to_pingtext更新情報サービスの通知予定先
pingedtext更新情報サービスの通知済み先
post_modifieddatetime更新日付
post_modified_gmtdatetime更新日付(GMT)
post_content_filteredlongtextタグ
post_parentbigint(20) unsigned親記事ID
guidvarchar(255)GUID
menu_orderint(11)ページの表示順
post_typevarchar(20)投稿種別
post_mime_typevarchar(100)添付ファイルのときMIMEタイプ
comment_countbigint(20)コメント数
wp_postsテーブルのカラム

記事本体はpost_contentに格納されます。

テーブル一覧で表示したときには先頭部分しか表示されませんので、post_contentだけを取り出して表示し、オプションで全文を選ぶと、記事本体全部を表示してくれました。

post_contentカラムを取り出してみた

まとめ

以上、WordPressの投稿記事本体はHTMLでなくwd_postsテーブルのpost_contentに格納されていることをご紹介しました。

昔メモ帳でポチポチHTMLを打ってホームページを作っていた時代とはだいぶ違いますね^^;

何かのお役に立てば幸いです。

ここまでお読みくださりありがとうございました。