Waarom het niet werkt:stel de derde parameter van $wpdb->insert
niet in string leeg te maken. Het formatteert elk veld dienovereenkomstig..
Wat het nu doet is gelijk aan:
$wpdb->insert($table, array(
'object_id' => sprintf('', $num_object_id),
'term_taxonomy_id' => sprintf('', $num_taxo_id),
'term_order' => sprintf('', 0)
));
Als u echt een derde parameter wilt instellen, moet u het volgende doen:
$wpdb->insert($table, array(
'object_id' => $num_object_id,
'term_taxonomy_id' => $num_taxo_id,
'term_order' => 0
), array('%d', '%d', '%d'));
Wat betreft de fout:de tabel wp_term_relationships heeft een unieke primaire sleutel (object_id, term_taxonomy_id). Dit betekent dat u geen twee rijen in die tabel kunt hebben die beide dezelfde object_id en term_taxonomy_id hebben.
Hoewel dit is gebeurd omdat u door de derde parameter van insert op een lege string in te stellen, u steeds opnieuw probeert rijen in te voegen met object_id=0 en term_taxonomy_id=0.