Benutzerdefinierte Taxonomien, die beim Importieren von einem Standort zu einem anderen keine Hierarchie beibehalten

Auf meiner Website habe ich einen benutzerdefinierten Post-Typ “Listing”, der eine hierarchische Taxonomie “local” hat.

Die Begriffe in dieser Taxonomie haben die Form Staaten> Städte.

Zum Beispiel “Washington” ist ein Elternteil und Arlington, Auburn, Davenport usw. könnte es Kindertaxonomien sein.

Jetzt, wenn ich diesen benutzerdefinierten Post-Typ zu einer anderen Site exportiere und importiere, werden meine Taxonomien auf unterer Ebene zu Top-Taxonomien, sie behalten nicht länger die Hierarchie bei.

Ich habe Code in functions.php verwendet, um diese zu erstellen, keine Plugins. Was mache ich falsch?

Solutions Collecting From Web of "Benutzerdefinierte Taxonomien, die beim Importieren von einem Standort zu einem anderen keine Hierarchie beibehalten"

Ich verstehe Ihr Problem und musste es auch wp_insert_term() : wp_insert_term() keine Eltern / Kinder-Verbindungen.

Sie können dies mit folgendem prüfen:

 $tax = 'category'; $terms = get_terms( array( $tax ) ); $children_to_update = array(); foreach ( $terms as $term ) { $checked_term = get_term_by( 'name', $term, $tax ); // ... retrieve parent here ... if ( ! $checked_term ) { $term_data = wp_insert_term( $term, $tax, array( 'parent' => $parent ) ); if ( is_array( $term_data ) AND ! is_wp_error( $term_data ) AND '0' !== $parent ) $children_to_update[ $parent ][] = $term_data['term_id']; } } // inspect result var_dump( $children_to_update ); 

Sie werden sehen, dass es leer bleibt. Der Grund ist einfach: Es gibt eine Option , die diese Informationen enthält. Sie müssen es auch aktualisieren:

 $option = get_option( "{$tax}_children" ); foreach( $children_to_update as $new_p => $new_c ) { if ( ! array_key_exists( $new_p, $option ) ) { $option[ $new_p ] = $new_c; } else { foreach ( $new_c as $c ) { if ( ! in_array( $c, $option[ $new_p ] ) ) $option[ $new_p ][] = $c; } } } update_option( "{$tax}_children", $option ); 

Zuerst habe ich nicht verstanden, dass die Hierarchie nicht funktionierte, aber wenn Sie sich die Taxonomie-Übersichtsseite in der Admin-Benutzeroberfläche ansehen, dann werden Sie sehen, dass die Begriffe nicht wie das Soll ausgerichtet sind (in Kinder- / Elternlisten). .