Die Tabelle wird bei der Aktivierung des WP-Designs nicht erstellt

Dies ist der Code, den ich verwende, um eine benutzerdefinierte Tabelle mit dem Namen “Präfix” + zillow -> zu erstellen, wobei prefix das Präfix der wp-Tabelle für die Site ist.

register_activation_hook(__FILE__,'CreateTable'); 

Die eigentliche function ist unten angegeben – es prüft, ob eine solche Tabelle bereits existiert, zusammen mit der zugewiesenen Versionsnummer für diese Tabelle (damit ich diese Tabelle in einer späteren Version dieses Themas aktualisieren / ändern kann) –

 function CreateTable() { //Database table versions $zillow_db_table_version= "1.0"; $table_name = $wpdb->prefix . "zillow"; $installed_ver = get_option( "zillow_db_table_version" ); //Check if the table already exists and if the table is up to date, if not create it if($wpdb->get_var("SHOW TABLES LIKE '$table_name'") != $table_name || $installed_ver != $zillow_db_table_version ) { $sql = "CREATE TABLE " . $table_name . " (propertyid varchar(20) NOT NULL , inserted_on date, UNIQUE KEY id (id) );"; require_once(ABSPATH . 'wp-admin/includes/upgrade.php'); dbDelta($sql); update_option( "zillow_db_table_version", $zillow_db_table_version ); } //Add database table versions to options add_option("zillow_db_table_version", $zillow_db_table_version); } 

Aber der Tisch wird überhaupt nicht erstellt. Was ist falsch an dem obigen Code? Ich habe versucht, das Thema mit dem obigen Code mehrmals zu aktivieren (nachdem ich zuerst ein anderes Thema aktiviert und dann dieses aktiviert habe), aber es wird keine Tabelle erstellt (ich überprüfe direkt in der WP database Liste der Tabellen).

Solutions Collecting From Web of "Die Tabelle wird bei der Aktivierung des WP-Designs nicht erstellt"

dbDelta ist extrem wählerisch. Wenn ich deinen Code betrachte, würde ich sagen, dass du gegen diese Regel verstoßen hast:

Sie müssen jedes Feld in eine eigene Zeile in Ihrer SQL-statement einfügen

Zwei Ihrer Felder teilen Zeilen mit Klammern. Ich habe dieses bestimmte Muster nicht getestet, aber dbDelta ist extrem wählerisch.

Ich weiß nicht, ob dieser Abstand nach NOT NULL wichtig ist.

Ich bezweifle, dass eine Überprüfung der Existenz der Tabelle notwendig ist. Überprüfen Sie Ihre Option sollte ausreichen.

Und schließlich ist register_activation_hook für Plugins gedacht, nicht für Themen. Es gibt keinen ähnlichen spezialisierten Aktivierungshaken, den ich kenne. Es gibt eine Reihe von Work-arounds, die vorgeschlagen wurden, wenn Sie diese Website nach ihnen durchsuchen.