目次
自作(オリジナル)テーブルの作成方法
WordPress標準のテーブルでは管理できない情報を保存するためには、新たにテーブルを作成する必要があります。まずはテーブルを作成し、WordPressに認識させる方法をまとめます。
手順は3つ。
- テーブルの作成
- WordPressへのテーブルの登録
- WordPressプラグインからの確認
1.テーブルの作成
テーブルの作成は「phpMyAdmin」を使用します。テーブルの作成方法に関してはここでは省略します。
サンプルとして、以下のフィールドを持った会員管理テーブル(wp_member)を作成しました。
member_id:メンバーID bigint(20) AUTO_INCREMENT
member_name:メンバー名 varchar(50) utf8_unicode_ci
member_email:メールアドレス varchar(100) utf8_unicode_ci
【Point】
テーブル名に必ず WordPress と同じプリフィックス(接頭辞)を付けます。例えば WordPress のプリフィックスが初期設定のまま「wp_」となっている場合は、新しいテーブル名を wp_xxx (xxxは任意)とします。ここではwp_memberとしました。

※インデックスの「サイズ」は入れない
2.WordPressへのテーブルの登録
WordPressでは「$wpdb」というグローバル変数(オブジェクト)を通してDBの各テーブルにアクセスすることができます。この$wpdbに自作テーブルを認識させるため、「wp-includes」フォルダにある「wp-db.php」を修正します。
ただし、「wp-db.php」ファイルを直接変更しても、WordPressのバージョンアップなどで上書きされてしまう可能性がありますので、「db.php」という名前のファイルを作成し、「wp-content」フォルダに入れることで、「wp-db.php」ではなく、「db.php」をインクルードします。
db.phpの説明
<?php
require_once( ABSPATH . WPINC . '/wp-db.php' );
class my_wpdb extends wpdb {
var $tables = array( 'posts', 'comments', 'links', 'options', 'postmeta',
'terms', 'term_taxonomy', 'term_relationships', 'termmeta',
'commentmeta', 'member' );
//追加するときwp_はいりません
}
if ( ! isset($wpdb) ) {
$wpdb = new my_wpdb(DB_USER, DB_PASSWORD, DB_NAME, DB_HOST);
}
?>
3.WordPressプラグインからの確認
オリジナルのプラグイン「顧客管理」を作成し、そこにリストを表示してみます。
<?php
/*
Plugin Name: 顧客管理
Author: Global Link
Plugin URI:
Description:
Version: 0.1
Author URI: https://global-business.link/
*/
/* 管理画面に顧客リストを表示する */
add_action( 'admin_menu', 'my_custom_menu_page');
function my_custom_menu_page(){
add_menu_page('顧客一覧', '顧客一覧', 'manage_options', 'customer_list_menu', 'customer_list_page', '', 4 );
}
function customer_list_page(){
global $wpdb;
echo "<h2>顧客一覧ページ</h2>";
$result = $wpdb->get_results('SELECT * FROM wp_member');
//ここはwp_を付ける
if (!$result) die('error.');
foreach($result as $row) {
echo $row->member_name . $row->member_email . "<br />";
}
}
?>
参考サイトURL
以下のサイトを参考としました。こちらと合わせて参照してください。


