====== Wordpress Datenbank Tabelle erzeugen bei Plugin-Aktivierung ======
Man sollte das in zwei Files aufteilen:
- in der Hauptfile des plugins ''mein_plugin.php'' den Hook einbauen, der getriggert wird bei Plugin Aktivierung
- in eine zweite File den Code um in der Datenbank eine Tabelle zu erzeugen
===== Hook/Action in der Plugin-Hauptfile =====
Wenn euer Plugin ''mein-plugin'' heißt, heißt in diesem Beispiel die Mainfile auch ''mein-plugin.php''. Dort am Besten den ''register_activation_hook''-Hook hinein schreiben:
/* --------------------------------------------------------
* PLUGIN AKTIVIERUNG
* --------------------------------------------------------
*
* Funktionen die ausgeführt werden sollen, wenn das Plugin
* aktiviert wird. z.B. Datenbanken erstellen oder ähnliches.
*
*/
register_activation_hook( __FILE__, function(){
/* Hier Code der bei Aktivierung ausgeführt werden sollen */
require_once 'PluginActivator.php'; // <- das ist die zweite File mit dem Datenbank Code im gleichen Folder
PluginActivator::activate();
} );
Achtung: dieser Hook wird nur ausgeführt beim aktivieren des Plugins, danach nicht mehr. Erst dann wieder, wenn das Plugin deaktiviert und wieder reaktivier wurde.
===== Zweite File mit Datenbank Code =====
In unserem Beispiel heißt die File ''PluginActivator.php'' und wird required mit Hook beim Aktivieren des Plugins.
prefix . "meine_neue_tabelle";
$charset_collate = $wpdb->get_charset_collate();
$sql = "CREATE TABLE $table_name (
id mediumint(9) NOT NULL AUTO_INCREMENT,
mein_text_werte TINYTEXT NOT NULL,
mein_zahlen_werte INT NOT NULL,
PRIMARY KEY (id)
) $charset_collate;";
$result = dbDelta( $sql ); // $result speichert nur ob es geklappt hat oder nicht
}
}
Hinweis: Möglichst immer in diesem Fall mit ''dbDelta()'' arbeiten. Dann könnt ihr im Nachhinein auch Änderungen an den Tabellen Spalten/Columns machen und WP passt diese an. Also nach dem Deaktivieren und Reaktivieren. Aber so könnt Ihr auch später noch Änderungen an der Tabelle vornehmen.