webコンテンツを徹底強化!WordPressサイト制作とプラグイン&テーマ情報・メンテ/エラー対応から、PHP/CSS/javascript、動画・音・イラスト等制作まで扱うコラム
マルチメディアコンテンツ制作読んどけ☆コラム

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

      2021/02/23

【画像つきでわかりやすい】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ユーザー向けでしたが、データベース構造を知っていただけたことかと思います。 学習のほかにも、『自分でディスクリプションだけページごとに設定する機能を実装』みたいなカスタマイズをするときに、構造を知っておくと役にたちます。


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

  関連記事

【WordPressで覚えよう】PHP「->」(オブジェクト演算子/アロー演算子)・「=>」(ダブルアロー演算子)の違い

今回は、管理人もPHP学習し始めのときは混同していた、PHPの演 ...

【超危険】WordPressデータベースリビジョンお掃除

今回は、WordPressのリビジョンが、データベースに大量にた ...

【PHP】カウントダウン機能に使える?array_reverseで配列要素を逆に,パラメーター挙動&array_flipとの違い

今回は、管理人がYouTubeData APIの、order=d ...

YouTube Data APIを使って、PHPで『タイトル・動画id・サムネイル画像』などを取得してみる(Search: listリソース)

今回は、youtubeとwebサイト連携で、YouTube Da ...

テスト環境(ローカル含む)でPHPサイト開発に使えるツール&xamppでやってみた例(設定や表示ファイルetc)

今回は、管理人がサイトに、ちょっとした機能を実装しようとしていた ...

WordPress一覧表示で、特定のカテゴリ/投稿を表示しないようにするには?→category_not_in・post_not_inで

今回は、WordPressの公式フォーラムを見ていたら、『一覧か ...

WordPress・REST APIのjsonファイルにカスタムフィールドを入れ、タイトル・アイキャッチと共に外部サイトで取得・表示

今回は、管理人がWPで作ったサイトのコンテンツを、別の自社運営サ ...