Blog
ブログ
WordPressデータベース初級編

WordPressは見た目だけ触っていてもサイト制作はできる。
ただ、データベースを理解すると、
- 実装アイデアが広がる
- トラブル対応できる
- AIを使った実装精度が上がる
という変化がある。
特に今は、「コードを全部書ける」よりも、
「どういうデータ構造にしたいか説明できる」ことが重要になっている。
🧩 WordPressは「ファイル + データベース」でできている
WordPressは大きく2つで構成されている。
ファイル側
サーバー上に存在するデータ。
- PHP
- テーマ
- プラグイン
- CSS
- JavaScript
- アップロード画像
など。
データベース側
動的データを保存している。
- 投稿
- 固定ページ
- ユーザー情報
- サイト設定
- カスタムフィールド
など。
データの流れ
入力
↓
データベースへ保存
↓
WordPressが取得
↓
画面表示
つまり、
WordPress = DBのデータを表示するシステム
という理解になる。
📦 データベースの基本構造
データベースはExcelの表に近いイメージ。
テーブル
データを入れる箱。
例:
wp_posts
カラム(列)
| ID | post_title | post_type |
|---|
レコード(行)
| ID | post_title | post_type |
|---|---|---|
| 1 | お知らせ | post |
🏗️ WordPressの代表的なテーブル
wp_posts
以下をまとめて管理している。
- 投稿
- 固定ページ
- カスタム投稿
- リビジョン
wp_users
- ログイン情報
- メールアドレス
- パスワード
など。
wp_options
- サイトURL
- テーマ設定
- プラグイン設定
など。
wp_terms
- カテゴリー
- タグ
など。
📝 投稿も固定ページも実は同じ場所に保存されている
見た目では別管理に見えるが、実際は全部:wp_postsに保存されている。
違いは post_type で判別される。
例
| post_title | post_type |
|---|---|
| お知らせ | post |
| 会社概要 | page |
| 制作実績A | works |
💬 SQLとは何か
SQLは、Structured Query Languageの略。
データベースへ命令するための言語。
SQLでできること
SELECT
データ取得。
SELECT * FROM wp_posts;
意味:
wp_posts の中身を全部取得
WHERE
条件絞り込み。
SELECT * FROM wp_posts
WHERE post_type = 'page';
意味:
固定ページだけ取得
INSERT
データ追加。
INSERT INTO wp_sample (name)
VALUES ('田中');
UPDATE
データ更新。
UPDATE wp_sample
SET name = '佐藤'
WHERE id = 1;
DELETE
データ削除。
DELETE FROM wp_sample
WHERE id = 1;
⚙️ WordPressも裏側でSQLを使っている
投稿一覧を表示するときも、内部ではSQLが実行されている。
イメージ:
SELECT *
FROM wp_posts
WHERE post_type = 'post'
AND post_status = 'publish';
つまり、
WordPress = SQLを自動実行しているシステム
とも言える。
🔄 WP_Query と SQL の関係
WordPressでよく使う:
$args = [
'post_type' => 'post',
'posts_per_page' => 10,
];
これは内部でSQLに変換される。
対応イメージ
posts_per_page
↓
LIMIT
order
↓
ORDER BY
🚀 データベースを学ぶと変わること
実装アイデアが広がる
実装できるものの幅が広がる。
- 掲示板
- 予約管理
- 会員管理
- ポイント機能
- 日報管理
など。
トラブル対応できる
リビジョン理解によって、データ復旧できるケースがある。
例:
- LP編集時に真っ白になった
- 投稿が消えたように見える
など。
AI活用が強くなる
重要なのはコード暗記ではなく、
どういうデータを保存したいか
を説明できること。
AIへの依頼例
悪い例:
掲示板作って
良い例:
WordPressで独自テーブルを使った掲示板を作りたい。
name / message / created_at を保存したい。
ショートコードで表示したい。
🧱 独自テーブルとは
WordPress標準以外に自分で追加するテーブル。
例
wp_simple_bbs
保存データ例
| id | name | message | created_at |
|---|
独自テーブルでできること
- 掲示板
- 予約システム
- CSV出力
- 集計レポート
- 会員管理
など。
🛠️ WordPressでの定番実装
dbDelta()
WordPressでは以下でテーブル作成するのが定番。
dbDelta($sql);
テーブル名の注意点
$wpdb->prefix
を使う。
理由:
wp_
固定ではないため。
⚠️ SQLの危険な命令
TRUNCATE
テーブルの中身を全削除。
DROP TABLE
テーブル自体を削除。
DELETE
条件付きでデータ削除。
注意
DROP TABLE wp_posts;
を実行すると投稿データが消える。
本番環境では特に注意。
📚 学習メモ
まずは以下を見る。
- phpMyAdmin
- wp_posts
- wp_postmeta
- wp_options
最初は SELECT を試すだけでも理解が深まりそう。
💡 重要な理解
SQLを全部暗記する必要はない。
重要なのは、データがどう保存されているかを理解すること。
AI時代は特に、データ構造を説明できる人が強い。
📝 ちなみに:ShopifyとWordPressの違い
Shopifyは、テーマ構造や設定がJSONやファイル側にまとまっている。
CLIでpullすると、
- sections
- templates
- settings
などがファイルとして見えるため、「コードを見ると構造が分かる」感覚がある。
一方WordPressは、実データはDBに保存されるという違いがある。
例えば:
- 投稿本文
- 固定ページ
- ACF
- ユーザー情報
などはファイルではなく、MySQL(DB)側に入っている。
テーマ側は:
<?php the_content(); ?>
のように、「DBから取得して表示する」役割になっている。
イメージ比較
| Shopify | WordPress |
|---|---|
| ファイル中心 | DB中心 |
| JSON構造が多い | MySQL保存 |
| コードで構造が見えやすい | DBを見る文化 |
| テーマ開発感が強い | CMS感が強い |
| UI構造寄り | データ管理寄り |
かなりざっくり言うと、
Shopify = ファイル中心
WordPress = データベース中心
という理解。