目次
自作(オリジナル)テーブルの作成方法
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
以下のサイトを参考としました。こちらと合わせて参照してください。