Wp set post terms nu functionează
Codul meu nu funcționează, nu adaugă taxonomia
add_action('init', 'post_test', 10);
function post_test() {
$empty = get_page_by_title('Produs test', OBJECT, 'produse');
if(empty($empty)) {
$insert_post = array(
'post_status' => 'publish',
'post_type' => 'produse',
'post_title' => 'Produs test',
);
$post_id = wp_insert_post($insert_post);
if ($post_id) {
wp_set_post_terms($post_id, array('metale'), 'categoria-produse'); // id-ul etichetei metale este 108
}
add_post_meta($post_id, 'furnizori', '5948'); // id-ul furnizorului
add_post_meta($post_id, '_furnizori', 'field_52377232eb265');
}
}
De ce nu funcționează?

După cum se menționează în wp_set_post_terms
Comentariu:
Această funcție va funcționa doar pe tipul de postare nativ. Pentru o taxonomie pe un tip de postare personalizat, utilizați wp_set_object_terms()

Mulțumesc frate, acest cod funcționează! : wp_set_object_terms($post_id, array('metais'), 'categoria-produtos', true); // tag-ul metais are id-ul 108
mulțumesc mulțumesc

Acest lucru nu mai este valabil. Pentru WP 5+ poți folosi ambele chiar și pentru post types personalizate.

Acum Codex spune: This function will work on any post type. Alternatively, wp_set_object_terms() can be used.

@ToleaBivol Nu pot confirma asta, am pierdut 4 ore căutând de ce taxonomia personalizată nu era setată, am aflat că e din cauza diferenței dintre wp_set_post_terms și wp_set_object_terms
