Proč to nefunguje:nenastavujte třetí parametr $wpdb->insert
vyprázdnit řetězec. Podle toho formátuje každé pole..
To, co nyní dělá, je ekvivalentní:
$wpdb->insert($table, array(
'object_id' => sprintf('', $num_object_id),
'term_taxonomy_id' => sprintf('', $num_taxo_id),
'term_order' => sprintf('', 0)
));
Pokud opravdu chcete nastavit třetí parametr, měli byste to udělat:
$wpdb->insert($table, array(
'object_id' => $num_object_id,
'term_taxonomy_id' => $num_taxo_id,
'term_order' => 0
), array('%d', '%d', '%d'));
Pokud jde o chybu:tabulka wp_term_relationships má zapnutý jedinečný primární klíč (id_objektu, id_taxonomie_pojmu). To znamená, že v této tabulce nemůžete mít dva řádky, které mají stejné object_id a term_taxonomy_id.
I když se to stalo, protože nastavením třetího parametru insert na prázdný řetězec se pokoušíte vkládat řádky s object_id=0 a term_taxonomy_id=0 znovu a znovu.