So erstellen Sie eine databasetabelle, wenn das Plugin installiert / aktiviert wurde, und löschen die database, wenn das Plugin gelöscht wurde

Ich versuche, neues WordPress-Plugin mit objektorientierten Programmierung zu erstellen. Ich möchte database erstellen, wenn Plugin-Aktivierung und database löschen, wenn Plugin löschen. Nach meinem Code ist es nicht für mich arbeiten. Ich habe zwei Dateien ist eine Haupt-Plugin-Datei andere ist Plugin-functionen enthalten Dateien.

Hauptdateicode wie folgt:

plugin_dir = plugins_url( '' , __FILE__ ); include('inc/inc.php'); $this->security = new hidemysite_security(); } } 

Fügen Sie den folgenden Dateicode hinzu:

 prefix . 'md_things'; $charset = $wpdb->get_charset_collate(); $charset_collate = $wpdb->get_charset_collate(); $sql = "CREATE TABLE $table ( id mediumint(9) NOT NULL AUTO_INCREMENT, time datetime DEFAULT '0000-00-00 00:00:00' NOT NULL, name tinytext NOT NULL, text text NOT NULL, url varchar(55) DEFAULT '' NOT NULL, PRIMARY KEY (id) ) $charset_collate;"; require_once( ABSPATH . 'wp-admin/includes/upgrade.php' ); dbDelta( $sql ); } public function my_plugin_remove_database() { global $wpdb; $table_name = $wpdb->prefix . 'md_things'; $sql = "DROP TABLE IF EXISTS $table_name"; $wpdb->query($sql); //delete_option("jal_db_version"); } // } 

Kannst du mir bitte Helfen ?

Solutions Collecting From Web of "So erstellen Sie eine databasetabelle, wenn das Plugin installiert / aktiviert wurde, und löschen die database, wenn das Plugin gelöscht wurde"

Welchen Fehler bekommst du?

Aktivieren Sie das Debugging in Ihrer wp-config.php-Datei, indem Sie define (‘WP_DEBUG’, false) definieren (‘WP_DEBUG’, true) und eine Fehlermeldung anzeigen. Es wird Ihnen helfen, das eigentliche Problem zu finden.

Verwenden Sie stattdessen diesen Code

 class hidemysite_security{ public function __construct() { if (is_admin()) { register_activation_hook(__FILE__, array( $this, 'activate')); register_deactivation_hook( __FILE__, array( $this, 'my_plugin_remove_database' ) ); } } public function activate() { global $wpdb; $table = $wpdb->prefix . 'md_things'; $charset = $wpdb->get_charset_collate(); $charset_collate = $wpdb->get_charset_collate(); $sql = "CREATE TABLE $table ( id mediumint(9) NOT NULL AUTO_INCREMENT, time datetime DEFAULT '0000-00-00 00:00:00' NOT NULL, name tinytext NOT NULL, text text NOT NULL, url varchar(55) DEFAULT '' NOT NULL, PRIMARY KEY (id) ) $charset_collate;"; require_once( ABSPATH . 'wp-admin/includes/upgrade.php' ); dbDelta( $sql ); } public function my_plugin_remove_database() { global $wpdb; $table_name = $wpdb->prefix . 'md_things'; $sql = "DROP TABLE IF EXISTS $table_name"; $wpdb->query($sql); //delete_option("jal_db_version"); } // } 

Diese 2 Zeilen wurden modifiziert-

 register_activation_hook(__FILE__, array( $this, 'activate')); register_deactivation_hook( __FILE__, array( $this, 'my_plugin_remove_database' ) );