###現在の状況
WordPressですが、phpMyAdminに独自テーブルを作成すると、勝手にフォルダ分けが発生しました。
下図で赤いチェックのあるテーブルが後述のコードで作成したテーブルですが
wp__strawberry_cake
wp__chocolate_pie
の2つだけが、自動でwp
というフォルダに分けられてしまいました。
そもそもこの2つは同じカラムを持つもので、カスタム投稿タイプの代わりに作ったものです。
それがphpMyAdminで確認するとき頭文字順では少し見にくいと思い、接頭辞に「_」を付けて「wp__」としたという経緯があります。
なので、こうしてフォルダに分けられるのは大変見やすくなり、むしろありがたい機能ではあるのですが、質問が2つあります。
###質問
➀このフォルダ分けはどのようなときに生じますか?
➁このフォルダ分けされたテーブルは、他のテーブルと参照方法やその他の使い方が違うなどありますか?それともフォルダに分けられただけですか?
###上のテーブルを作成したコード
こちらのように作成した結果、上図のように勝手にフォルダ分けが発生しました。
php
1$arr_test = ['_strawberry_cake','_chocolate_pie']; 2foreach( $arr_test as $table_name ){ 3 create_table($table_name); 4} 5 6function create_table($table_name) { 7 global $wpdb; 8 9 require_once(ABSPATH . 'wp-admin/includes/upgrade.php'); 10 11 $sql = "CREATE TABLE " . $wpdb->prefix . $table_name . "( 12 id int not null auto_increment, 13 desc text not null, 14 primary key (id) 15 );"; 16 add_option($table_name."_version", '1.0'); 17 dbDelta($sql); 18}
###試したこと
質問➀ですが、接頭辞に「_」をつけたときにだけ生じるものではないかという考えです。
以下2通り試したところ、フォルダ分けが発生しなかったためです。
ただもしそうであればフォルダは1つしか作れないことになってしまい、以下で作成されたwp_cheese_burger
とwp_fried_chicken
を独立したフォルダにまとめたいなどのことができないので違うかもとも思ったり…うーん…どうなのでしょうか。
先の質問➀と➁について、ご回答宜しくお願い致します。
create_table('cheese_burger'); create_table('fried_chicken');
$arr_test = ['orange_soda','lemon_sour']; foreach( $arr_test as $table_name ){ create_table($table_name); }
回答1件
あなたの回答
tips
プレビュー