Wie würde man vorgehen, um alle Optionsnamen in einer WordPress-Datenbank zu löschen, die mit einem bestimmten Präfix beginnen?
Ich würde davon ausgehen, dass wir ein Präfix angeben, alle Optionen abrufen müssen, die mit diesem Präfix beginnen, und dann jede gefundene Option löschen müssen.
Hier ist ein Beispiel für die Präfix- und WP-Funktionen zum Abrufen und Löschen von Optionen in der Datenbank.
global $wpdb;
$wpdb->query( "DELETE FROM {$wpdb->options} WHERE option_name LIKE 'cpt_%'" );
oder setzen Sie es in eine Funktion wie folgt:
function delete_options_prefixed( $prefix ) {
global $wpdb;
$wpdb->query( "DELETE FROM {$wpdb->options} WHERE option_name LIKE '{$prefix}%'" );
}
delete_options_prefixed( 'cpt_' );
Sie müssen eine “Whitelist” aller Variablen erstellen, die Ihr Plugin setzt (ich nehme an, Sie sehen sich ein Plugin-Deinstallationsskript an), und schleifen Sie es dann einfach am anderen Ende durch, damit Sie sie alle löschen können.
Etwas so Einfaches wie:
// Somewhere in your plugin, maybe as a class property
$pluginDefinedOptions = array('my_name', 'my_created', 'my_modified'); // etc
// Clear up our settings
foreach($pluginDefinedOptions as $optionName) {
delete_option($optionName);
}