WordPressのカスタマイズやテーマファイル、プラグインの作り方などデータベース構造から詳しく解説します。

WordPressのデータベース構造とwpdbクラス

データベース構造

WordPressデータベース構造
出典元

主要テーブルの説明

テーブル名: テーブルの内容
wp_posts: 投稿のデータ
wp_postmeta: 投稿に関連するメタデータ
wp_comments: コメントおよびトラックバックのデータ
wp_commentmeta: コメントに関連するメタデータ
wp_term_taxonomy: カテゴリーやタグなどの分類に関するデータ
wp_terms: タクソノミーで用いられるキーワード
wp_term_relationships: タクソノミーと投稿などのオブジェクトとの相互関係を表現するデータ
wp_users: WordPressのログインユーザーに関するデータ
wp_usermeta: ユーザーに関するメタデータ
wp_options: サイトの一般設定データ

よく使われるテーブルwp_posts

複数あるテーブルの中でも頻繁に使用されるwp_postsのことを軽く紹介します。詳しくはcodeXをみてください→ こちら
wp_postsには投稿記事のデータが格納されています。つまり、投稿した記事のタイトル、内容、日付、投稿者などのデータがあります。

主なフィールド

ID: 投稿ID(WordPress内で自動的に割り当てられる)
post_author: 投稿者のユーザーID
post_title: タイトル
post_content: 本文
post_date: 投稿日時
post_status: 投稿のステータス(下書き、レビュー待ちなど)
post_type: 投稿種別(postやpageなど)
guid: 記事のURL

データベースを操作するwpdbクラス

wpdbクラスは、WoedPressのデータベースにSQL文をなげかけて操作するためのクラス。

前提条件として、WordPressには便利な機能がたくさんあります。複雑なSQLを発行する前にWordPress APIを使えないか考えてみよう。

wpdbクラスのメソッドでテーブルにアクセスする場合は、
$wpdbというグローバル変数を利用してアクセスする。

データベースのアクセス方法

$wpdb->prepare()

使用方法: sprintf()に似た形で、プレースホルダーを用いてSQLエスケープを行いながらクエリを作成する。%s(文字列)%d(整数)%f(小数点)

<?php
     global = $wpdb;
     $wpdb->prepare(
         “SELECT some FROM wp_custom WHERE foo = %s AND status = %d”,
          $name,
          $status
     );
?>

$wpdb->insert($table, $data, $format)

使用方法: 安全に行を挿入する
$tableがテーブル名、$dataは挿入するデータを配列にしたもので、array( ‘column1’ => ‘value1’, column2 => ‘value2’ );の形で表す
では、wp_customという行を挿入してみる。

<?php
global $wpdb;
$wpdb->insert(
     ‘wp_custom’,
     array(
          ‘column1’ => ‘Hello’,
          ‘column2’ => ‘1234'
),
array(
     ‘%s’,
     ‘%d'
)
);
?>

$wpdb->update( $table, $data, $where, $format=null, $where_format=null );

安全に列を更新する
$tableがテーブル名、$dataは更新するデータを配列にしたもの、$whereはarray( ‘column1’ => ‘value1’, ‘column2’ => ‘value2’ );という形の配列でWHERE句を作成する。配列キーが2つ以上ある場合はANDになる。この時SQLは不要。

まとめ

今回は簡単にデータベース構造とwpdbクラスについて書きました。
データベースの中身は配置や関係が頭の中に入っていると開発を進めていく上でとても楽になります!^^
wpdbクラスはMySQLと深く関係してきますので、また次回にでも紹介したいと思います。

関連記事

ページ上部へ戻る