Về lý do tại sao nó không hoạt động:không đặt tham số thứ ba của $wpdb->insert
thành chuỗi rỗng. Nó định dạng mọi trường cho phù hợp ..
Những gì nó làm bây giờ tương đương với:
$wpdb->insert($table, array(
'object_id' => sprintf('', $num_object_id),
'term_taxonomy_id' => sprintf('', $num_taxo_id),
'term_order' => sprintf('', 0)
));
Nếu bạn thực sự muốn đặt thông số thứ ba, bạn nên làm:
$wpdb->insert($table, array(
'object_id' => $num_object_id,
'term_taxonomy_id' => $num_taxo_id,
'term_order' => 0
), array('%d', '%d', '%d'));
Đối với lỗi:bảng wp_term_relationships có một khóa chính duy nhất trên (object_id, term_taxonomy_id). Điều này có nghĩa là bạn không thể có hai hàng trong bảng có cả object_id và term_taxonomy_id giống nhau.
Mặc dù điều này đã xảy ra vì bằng cách đặt tham số thứ ba của chèn thành chuỗi trống, bạn đang cố gắng chèn các hàng có object_id =0 và term_taxonomy_id =0 nhiều lần.