『WordPressのMySQLに独自テーブルを作りたい!!』というときに必要となる作業と、独自テーブルへの接続方法についての説明です。
#WordPressのMySQL独自テーブルの作成と利用方法
ということで、早速ですがMySQLへのテーブルを用意します。
【前提(取り扱うデータ)】
過去記事でも扱っているGoogleフォームで募った会議参加者の情報を管理することを例にあげます。
(参考となる過去記事)
Googleフォームで取得した画像をスプレットシートで表示する方法【セル内に画像で表示】
管理するデータは以下になりまして、{プロフィール画像URL、名前、出身地、主な実績}をこれらを管理する独自テーブルを作ります。
#データベースの作成とwp-db.phpの更新
早速ですが、お好きな手順で独自テーブルを作成してください。ホスティングサーバーのphpMyAdmin
から作るのが手っ取り早いかと思います。
【独自テーブルの追加】
デフォルトだと、wp_db
というデータベースが作成されていると思うので、その中に新しい独自テーブルとしてwp_member_list
を追加しました。
wp_
の部分はプレフィックス(接頭辞)となりまして、他のテーブルの前にも規則的なプレフィックスがついていると思うので、そちらに合わせて独自テーブルのテーブル名の先頭に付与するようにしてください。(デフォルトではwp_
になっています。)
【wp-db.phpへの独自テーブルの登録】
[WordPressフォルダ] → [wp-includesフォルダ]の中に、wp-db.php
というファイルがありまして、こちらに独自テーブルの情報を更新する必要があります。
当該のファイルを開いたら、$tables
の配列(おそらく260行目あたりにあると思います。)に独自テーブルmember_list
を追加して更新してください。※この際にはプレフィックスを除いた文字列を追加するようにしてください(下記、最下行参照)。
var $tables = array(
'posts',
'comments',
'links',
'options',
'postmeta',
'terms',
'term_taxonomy',
'term_relationships',
'termmeta',
'commentmeta',
'products',
'member_list', //独自テーブルを新規で追加
);
#データベースへの接続
では、独自テーブルに接続できるかを確認したいと思います。疎通試験だけするスクリプトを用意しました。wordpressのテンプレートフォルダにconnection_check.phpというファイルを作っています。
私はMacでMAMP環境を整えているので、こんなパスになります。
/Applications/MAMP/htdocs/wordpress/wp-content/themes/twentytwelve/connection_check.php
【独自テーブルへの疎通確認スクリプト】
SELECT文で、データベースに繋げるかどうかを見ています。テーブルにデータが入っていなくても、データベースに接続さえできればSELECT結果0件として戻ってくるので、$wpdb
の実行結果に値が入って接続成功となります。
データベースの接続にあたってWordPressの設定情報がいるのでrequire_once関数
で取得しています。wp-load.phpへの相対パスはお手元の環境に合わせて修正してください。
<?php
require_once(dirname(__FILE__) . "../../../../wp-load.php");
global $wpdb;
$rows = $wpdb->get_results("SELECT count(*) FROM $wpdb->member_list");
echo "<br> MySQLの独自テーブルへアクセス <br>";
if(empty($rows)){
echo "<br> 接続失敗 <br>";
}else{
echo "<br> 接続成功 <br>";
}
return;
【phpファイルの実行】
念の為ですが、上記の私の環境だと、phpファイルを置いたフォルダにアクセスすれば実行結果が得られます。(パスは適宜修正してください。)
http://localhost:8888/wordpress/wp-content/themes/twentytwelve/connection_check.php
その上で、以下の実行結果が返ってきたら接続に成功しています!!
MySQLの独自テーブルへアクセス
接続成功
とうことで、WordPressのMySQL独自テーブルの作成と接続方法についての説明でした。wp-db.php
の更新を忘れると、永遠に接続できないので注意してくださいね。