Language
ワードプレスのプラグインからデータベーステーブルを作る場面は多いと思います。
今回はデータベーステーブルを作成する方法を記載いたします。
下記、コードです。
はじめにデータベース構造のバージョン番号を記録するオプションを付けています。
これを記載することにより、テーブル更新の際にこのバージョン情報を使うことができます。
英語版参考例:
https://codex.wordpress.org/Creating_Tables_with_Plugins#A_Version_Option
グローバル変数で宣言した$jal_db_versionは記述の一番最後のadd_option( 'jal_db_version', $jal_db_version );でフックさせています。
次にグローバル変数で$wpdbを宣言し、wpdbクラスのグローバルオブジェクトを呼び出します。
データベーステーブル接頭辞を追加します。
$wpdb->prefixが接頭辞となります。
次にプリフィックスに「.」でデータベーステーブル名を連結します。
今回は「pvs_counter」としています。
合わせると書き方はこのようになります。
ここでwp-config.phpにある接頭辞がwp_1だからと言ってこの名前を使わないように気を付けます。それぞれのワードプレスで名前は異なりますので。
デフォルトの文字セットを取得します。
詳しいことはCodexに書かれているので、参考になると思います。
http://wpdocs.osdn.jp/%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3%E3%81%A7%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9%E3%83%86%E3%83%BC%E3%83%96%E3%83%AB%E3%82%92%E4%BD%9C%E3%82%8B
CREATE TABLE $table_nameで先ほどセットした接頭辞とテーブル名を指定。
$sqlに各フィールドを格納します。最後に$charset_collate;で文字セットを記述。
dbDelta( $sql ); はテーブル作成の際にWordPressの規則であるかチェックしてくれる関数です。テーブル作成の際はこの関数を通すようにします。
また、dbDelta()はwp-admin/includes/upgrade.phpにあります。デフォルトでは読み込まないので、インクルードする必要があります。
これで、データベースにテーブルを作成することが出来ました。