7
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

WordPressのMySQL独自テーブルの作成と利用方法【wp-db.phpの更新必須】

Last updated at Posted at 2020-03-27

『WordPressのMySQLに独自テーブルを作りたい!!』というときに必要となる作業と、独自テーブルへの接続方法についての説明です。

#WordPressのMySQL独自テーブルの作成と利用方法
ということで、早速ですがMySQLへのテーブルを用意します。

【前提(取り扱うデータ)】
過去記事でも扱っているGoogleフォームで募った会議参加者の情報を管理することを例にあげます。

(参考となる過去記事)
Googleフォームで取得した画像をスプレットシートで表示する方法【セル内に画像で表示】

管理するデータは以下になりまして、{プロフィール画像URL、名前、出身地、主な実績}をこれらを管理する独自テーブルを作ります。

Screen-Shot-2019-12-08-at-18.15.34-1024x378.png

#データベースの作成とwp-db.phpの更新
早速ですが、お好きな手順で独自テーブルを作成してください。ホスティングサーバーのphpMyAdminから作るのが手っ取り早いかと思います。

【独自テーブルの追加】
デフォルトだと、wp_dbというデータベースが作成されていると思うので、その中に新しい独自テーブルとしてwp_member_listを追加しました。

wordpress_mysql_original_table_01.jpg

wp_の部分はプレフィックス(接頭辞)となりまして、他のテーブルの前にも規則的なプレフィックスがついていると思うので、そちらに合わせて独自テーブルのテーブル名の先頭に付与するようにしてください。(デフォルトではwp_になっています。)

【wp-db.phpへの独自テーブルの登録】
[WordPressフォルダ] → [wp-includesフォルダ]の中に、wp-db.phpというファイルがありまして、こちらに独自テーブルの情報を更新する必要があります。

当該のファイルを開いたら、$tablesの配列(おそらく260行目あたりにあると思います。)に独自テーブルmember_listを追加して更新してください。※この際にはプレフィックスを除いた文字列を追加するようにしてください(下記、最下行参照)。

wp-db.php
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への相対パスはお手元の環境に合わせて修正してください。

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の更新を忘れると、永遠に接続できないので注意してくださいね。

7
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?