Terms eine neue Taxonomie zuweisen

foto von valentina ivanova
foto von valentina ivanova auf unsplash

Sicherlich ist das keine Funktionalität, die man täglich braucht. Grundsätzlich geht allerdings manche Abfrage und auch manches Update schneller, wenn man WordPress-Datenbank-Funktionalität nutzt, bestimmte Werte in bestimmten Tabellen abzufragen und / oder zu ändern.

Beispielfall dafür waren Attribute für WooCommerce-Produkte, die ausschließlich für Zuordnungszwecke angelegt waren. Attribute sind zwar auch Taxonomien, doch sie verursachen auch post_meta-Einträge bei Produkten, die es dafür braucht, Eigenschaften zur Generierung von Variationen heranziehen und / oder auf den Produktseiten sichtbar zu machen.

Nachfolgendes Codebeispiel erledigte die Umwandlung (nicht vergessen, vorher ein Backup der Datenbank zu machen!)

function convert_attribute_terms() {
	global $wpdb;
	$results = $wpdb->get_results( "SELECT * FROM {$wpdb->prefix}term_taxonomy WHERE taxonomy = 'alte_taxonomy'" );
	foreach ( $results as $term ) {
		$wpdb->update( $wpdb->prefix . 'term_taxonomy', [ 'taxonomy' => 'neue_taxonomy' ], ['term_id' => $term->term_id]  );
	}
}

Da es sich hierbei üblicherweise um einmalige Aktionen handelt, kann die Funktion nach erfolgreicher Konvertierung gelöscht werden.

Nach „Taxonomy Switcher“ oder „Switch Terms“ zu suchen bringt auch Plugins im WordPress-Repository zutage, die den Job erledigen.

Um zu vermeiden, dass es zu 404-Fehlern kommt anschließend die Permalink-Einstellungen neu speichern.

Bitte Kommentarfunktion nicht für Supportanfragen nutzen. Dem kann hier nicht entsprochen werden. Die Angabe einer E-Mail-Adresse und eines Namens ist nicht erforderlich. Einen (Spitz)-Namen zu nennen wäre aber doch nett.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Hinweis: Sowohl angegebener Name als auch E-Mail-Adresse (beides ist optional, dafür werden alle Kommentare vor Veröffentlichung geprüft) werden dauerhaft gespeichert. Du kannst jeder Zeit die Löschung Deiner Daten oder / und Kommentare einfordern, direkt über dieses Formular (wird nicht veröffentlicht, und im Anschluss gelöscht), und ich werde das umgehend erledigen. – Mit hinterlassenen Kommentaren hinterlegte IP-Adressen werden nach zwei Monaten automatisch gelöscht

publicly queryable