我爲我的插件創建了第一個表,並且在添加更多功能之後,我意識到我需要爲其他類型的數據添加第二個表。插件沒有創建第二個表激活
故障排除的努力到目前爲止還沒有使用相同的變量名稱爲SQL數據,運行dbDelta()都作爲組合的SQL VAR(的$setup_sql .= '...'
代替$setup_sql = '...'
),並運行代碼爲解決與dbDelta(的問題)一個簡單的功能,而不是一個班級。
我甚至試過用不同的名字運行一個表創建,只是爲了檢查代碼的工作情況,而它仍然沒有創建另一個表。
我已經有沒有錯誤貫穿所有這些測試,並且出於所有意圖和目的,似乎Wordpress不允許插件創建多個表格 - 但我知道情況並非如此。
class activation_setup {
public static function wpd_activate() {
global $wpdb;
$charset_collate = $wpdb->get_charset_collate();
require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
$wpd_table_trig = $wpdb->prefix . 'wpd_triggers';
$setup_sql_trig = "CREATE TABLE $wpd_table_trig (
id int(11) NOT NULL AUTO_INCREMENT,
trigger varchar(255) DEFAULT NULL,
popup varchar(255) DEFAULT NULL,
notify varchar(255) DEFAULT NULL,
UNIQUE KEY id (id)
) $charset_collate;";
dbDelta($setup_sql_trig);
$wpd_table_sel = $wpdb->prefix . 'wpd_selections';
$setup_sql_sel = "CREATE TABLE $wpd_table_sel (
id int(11) NOT NULL AUTO_INCREMENT,
selected varchar(255) DEFAULT NULL,
session varchar(255) DEFAULT NULL,
ip varchar(255) DEFAULT NULL,
page varchar(255) DEFAULT NULL,
date varchar(255) DEFAULT NULL,
UNIQUE KEY id (id)
) $charset_collate;";
dbDelta($setup_sql_sel);
update_option('wpd_activated',true);
}
}
$activation_setup = new activation_setup();
register_activation_hook(__FILE__ , array($activation_setup, 'wpd_activate'));
我會絕對堅果試圖找出爲什麼這個代碼不添加第二臺,甚至剔除重複表的代碼,並用不同的表名運行它之後。
我已經經歷了大量的博客文章和堆棧的答案試圖達到它的底部。
任何幫助將是太棒了。
**你的先生真是太棒了**我不能告訴你我已經經歷了多少次這樣的代碼 - 還有無數其他的例子 - 一個一個數字,從來沒有想過檢查這樣的實際名稱。爲我的Sql代碼中不使用蜱做好準備。 – RalphTheWonderLlama