====== 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.