function nazwa_funkcji_instalujacej()
{
global $wpdb;
$table_name = $wpdb->prefix . 'pierwsza_tabela';
$table_name2 = $wpdb->prefix . 'druga_tabela';
$sql = "CREATE TABLE IF NO EXISTS `" . str_replace('`','', $table_name) . "` (
id int(11) NOT NULL AUTO_INCREMENT,
name tinytext NOT NULL,
age int(11) NULL,
PRIMARY KEY (id)
);";
$sql .= "CREATE TABLE IF NO EXISTS`" . str_replace('`','', $table_name2) . "` (
id int(11) NOT NULL AUTO_INCREMENT,
email VARCHAR(20) NOT NULL,
PRIMARY KEY (id)
);";
require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
dbDelta($sql);
}
register_activation_hook(__FILE__, 'nazwa_funkcji_instalujacej');
5 i 6 – Tworzę sobie zmienne zawierające nazwę nowo dodawanych tabel $wpdb->prefix wyciąga mi aktualny prefix z jakim jest zainstalowany WordPress
8 i 15 – Zmienna z zapytaniem do bazy. Po drugim wystąpieniu zmiennej $sql musi być .= bo inaczej pierwsze zapytanie zostanie zastąpione przez drugie. str_replace('`','', $table_name) usuwa zbędny i podejrzany znaczek…
22 – wykonanie zapytania. Z resztą… Skoro piszecie wtyczkę to zapewne wiecie o co tu biega…
Szczegóły w CODEX -> https://codex.wordpress.org/Creating_Tables_with_Plugins