【画像つきでわかりやすい】WordPressで使われるデータは、MySQLデータベースに、どのように格納されているの?

      2021/02/23   3048文字

【画像つきでわかりやすい】WordPressで使われるデータは、MySQLデータベースに、どのように格納されているの?

今回は、学習コンテンツです(WordPress&MySQLデータベース)。WordPressをとおして、各種データがどのようにMySQLデータベースに入っているかを押さえます。

覚えておくと、『データベースアクセスが必要な項目を静的化して高速化』『ショッピングサイトなどに応用』『canonical urlやmeta descriptionなどをページごとに読む機能』などに使えるかもしれません。さっそく見ていきましょう。

MySQLデータベースへのアクセスのしかた(例:ロリポサーバー・phpMyAdmin使用)

ウェブブラウザでMySQLデータベースを操作できるツールに『phpMyAdmin』というのがあります。、PHPで実装されているSQL文を記述することなく、MySQLのデータベースに対して様々な操作が行えるツールのことです。


(例:ろりぽサーバーの場合。サーバー管理→データベース)たいていのサーバーではphpMyAdminでデータベース操作することができると思います。パスワードやサーバー情報・データベース名などを入力して入ります。データベース系はサポート外になっているようですが、構造がわかればたぶん大丈夫でしょう。『postのテーブルを消しちゃったら、記事が全部なくなった』とかね(笑)

information_schemaっていうデータベースがあるんだけど?


phpMyAdminに入ってみました。WordPressで使っているデータベースのほかに、『information_schema』というデータベースがあるのが確認できます。これは、データベースのメタデータとのことで、最初っから自動で入ってくる設定ファイルみたいなものと考えましょう。

mysql開発などをやる場合はおさえておかなければなりませんが、WordPressではほとんど使わない印象です。しかし、ネット上では『WordPressを別サーバーに移転するときに、本体データベースでなく、information_schemaをインポートしたのでエラーになった』などの例が確認できました。本文などが入っているデータベースとは別というように押さえておいてください。

WordPressで使われるデータは、MySQLデータベースに、どのように格納されているか

ではさっそく、『MySQLデータベース内にWordPressのデータが、どのように格納されているか』を見ていきます。テーブル名の表記が『●●●_テーブル名』みたいになっていますが、この●●●の部分はテーブル接頭辞(プレフィックス)です。デフォルトではwpになっていると思います。二つ以上インストールやセキュリティ上の理由で変更することがあります。

●●●_postmeta(記事のメタデータ)


投稿記事、ページなどのメタデータです。all in one seoプラグインで設定した『タイトルやディスクリプション』なども入っています。サムネ画像に振ったidなども入っています。

●●●_posts(記事の内容)


記事の内容が格納されているテーブルです。idが記事番号で(設定によってはこれがurlに入ります)、『post_content』にはまるまる記事本文が、『post_title』には記事タイトルが入っています。これを間違って消してしまうと、記事が表示されなくなるので気をつけましょう(当サイト管理人は、postsのテーブルを間違って消して、記事を吹っ飛ばしたことがあります笑)。

●●●_urls(ページごとのurl)


page/2みたいな、url形式なども格納されています。

●●●_tearms & ●●●_term_taxonomy


カテゴリ、タグに使われる語句が『●●●_tearms』です。名前のほか、個別のurlに使われるスラッグなどもこちらに格納。


『●●●_term_taxonomy』は分類のことで(単語の意味も分類学・分類法みたいな意味)、idのほか、『タグか、カテゴリーか、ナビゲーションメニューか』みたいな分類がされています。descriptionを設定した場合はここに入るようです。カウントという項目もあるので、それを呼び出して『そのカテゴリ内に記事が何個あるか』を表示することもできます。

●●●_comments


commentsはコメントです。最近はあまり使わないので非表示にしています。画像はWordPressインストール時に入っているコメントが入っている様子です。

●●●_options


optionsには、管理画面で入力したオプション設定情報が含まれています。サイトのurl・サイト名・description・ユーザー登録可能かどうか・週の始まりはどこにするか、などです。

●●●_ewwwio_images(プラグイン)


データベースにはプラグインに関わる情報も格納されます。以前使ってみた、画像圧縮プラグインについて、『圧縮かけた画像やID・圧縮率や結果』などといったデータが残っていました。これはWPのプラグイン管理・操作画面でも見ることができます。

そのほか、Mysql内に余計なテーブル・データなどがたまる例

このサイトで以前にも書きましたが、『多すぎるリビジョン』『プラグインの残骸』『迷惑コメント』なども、データベース内にたまっていきます。

ちょっとだけだったら(データ容量自体はたいしたことないので)、急激に表示速度が遅くなるみたいなことはないですが、余裕があったら整理しておくといいでしょう。構造を学習する上でもよいかも?

あとがき・まとめ

  • WPで使うデータベース以外に、データベース自体の設定やメタデータなどのデータベースがある
  • テーブルの名前は『post(記事)』みたいに、見ればわかる感じ
  • URLやタグ・カテゴリーみたいな構造や、サイト情報・管理者データ(メルアドや名前)なども格納されている

簡単にまとめると、こんなところでしょうか。WPユーザー向けでしたが、データベース構造を知っていただけたことかと思います。
学習のほかにも、『自分でディスクリプションだけページごとに設定する機能を実装』みたいなカスタマイズをするときに、構造を知っておくと役にたちます。

WordPressサイト制作&リニューアル・機能開発サービス | アトリエSS


【カテゴリ】 - PHP・データベースetc
【タグ】 -

  関連記事

【ユーザーデータ取得】WordPress定義済み関数の『get_userdata()』『wp_get_current_user()』ってどのように違うの?
【WordPressカスタムフィールド検索】meta_queryで、シリアライズ値が入ったフィールドを持つ記事をヒットさせるには?
【別に止めなくてOK】WordPressサイトなどに、アメブロ・fc2など無料ブログの更新情報を表示して連携する方法
【超危険】WordPressデータベースリビジョンお掃除
【PHP】カウントダウン機能に使える?array_reverseで配列要素を逆に,パラメーター挙動&array_flipとの違い
YouTube Data APIを使って、PHPで『タイトル・動画id・サムネイル画像』などを取得してみる(Search: listリソース)
テスト環境(ローカル含む)でPHPサイト開発に使えるツール&xamppでやってみた例(設定や表示ファイルetc)
【WordPressで覚えよう】PHP「->」(オブジェクト演算子/アロー演算子)・「=>」(ダブルアロー演算子)の違い
WPデータベースの余計なデータには何がある?事例と対処方法・あるとイヤなケース
【webサイトセキュリティ対策】検索フォームへのSQL判定などがある不正な入力を、WAFで遮断する
【WordPress更新情報表示】php/wp組み込みファンクション(fetch_feed)で取得と、プラグインで表示どちらが良い?
【PHP etc.プログラム学習サイトコードコピペ】全角引用符・バッククオートが入ってて動かない件に注意