Löschen von Taxonomiebegriffen und -beziehungen in einem benutzerdefinierten post_type, wenn ein Benutzer gelöscht wird

Zunächst einmal habe ich ein benutzerdefiniertes Plugin, das einen benutzerdefinierten post_type registriert. Wenn sich ein Benutzer auf der Website anmeldet, wird ein Post mit dem benutzerdefinierten post_type erstellt. Der Post wird mit dem Firmennamen des Benutzers [post_title] ausgefüllt, und wenn sich andere unter demselben Firmennamen anmelden, werden sie als Tags für diesen Post gespeichert.

Wenn ein Benutzer über das Administrator-Dashboard gelöscht wird, sind die übrigen Taxonomiebegriffe und -beziehungen weiterhin vorhanden, und diese Benutzer werden auf einer benutzerdefinierten Kontoseite [Front-End] angezeigt, obwohl sie gelöscht wurden. Ich denke, das Problem ist, dass wp_set_object_terms die Beziehungen nicht wp_set_object_terms .

Ich führte mehrere Tests durch und ließ die Vars fallen und alles sah gut aus, aber nach dem letzten Test fehlten alle Mitarbeiter und die Begriffe waren immer noch in der database.

 public function removeUserFromCompany( $user_id ) { // hook into user_delete to remove associate tag from custom_post_type // and all terms and relationships in DB // this is for deleting a user's account from the admin menu // add_action( 'user_delete', 'removeUserFromCompany' ); global $wpdb; // get all metadata for $current_user from wp_usermeta table $user = get_user_meta($user_id, '', false); // $term = term_id used in wp_term_taxonomy $term = maybe_unserialize($user['company_associate'][0]); $myposts = get_posts(array( 'post_type' => 'custom_post_type', 'post_status'=>'private', 'tax_query' => array( array( 'taxonomy' => 'company_associate', 'field' => 'term_id', 'terms' => $term['term_id'] ) ) ) ); $object_terms = wp_get_object_terms($myposts[0]->ID, 'company_associate'); $get_term = get_term_by('id', $term['term_id'], 'company_associate'); $i = 0; foreach ($object_terms as $terms) { // match company associate terms from post_type with deleted user's terms from user_meta // unset deleted user's object terms if ( $terms->term_id == $get_term->term_id && $terms->name == $get_term->name ) { unset($object_terms[$i]); } $i++; } // return object with deleted user's unset taxonomy wp_set_object_terms($myposts[0]->ID, $object_terms, 'company_associate'); // delete remaining taxonomy terms from the user wp_delete_term($get_term->term_id, 'company_associate'); } 

Wäre es einfacher, diese Datensätze mithilfe von Abfragen zu löschen?

Solutions Collecting From Web of "Löschen von Taxonomiebegriffen und -beziehungen in einem benutzerdefinierten post_type, wenn ein Benutzer gelöscht wird"