Wp set post terms no funciona
Mi código no está funcionando, no agrega la taxonomía
add_action('init', 'post_test', 10);
function post_test() {
$empty = get_page_by_title('Produto teste', OBJECT, 'produtos');
if(empty($empty)) {
$insert_post = array(
'post_status' => 'publish',
'post_type' => 'produtos',
'post_title' => 'Produto teste',
);
$post_id = wp_insert_post($insert_post);
if ($post_id) {
wp_set_post_terms($post_id, array('metais'), 'categoria-produtos'); // el id de la etiqueta metais es 108
}
add_post_meta($post_id, 'fornecedores', '5948'); // id del proveedor
add_post_meta($post_id, '_fornecedores', 'field_52377232eb265');
}
}
¿Por qué no funciona?

Como se indica en el comentario de wp_set_post_terms
:
Esta función solo funcionará en el tipo de publicación nativo. Para una taxonomía en un tipo de publicación personalizado, usa
wp_set_object_terms()

¡Gracias hermano, este código funciona! : wp_set_object_terms($post_id, array('metais'), 'categoria-produtos', true); // la etiqueta metais tiene el ID 108
gracias gracias

Esto ya no es así. Para WP 5+ puedes usar ambos incluso para tipos de contenido personalizados.

Ahora el Codex dice: Esta función funcionará en cualquier tipo de contenido. Alternativamente, se puede usar wp_set_object_terms().

@ToleaBivol No puedo confirmar eso, perdí 4 horas buscando por qué no se estableció la taxonomía personalizada, descubrí que es porque hay una diferencia entre wp_set_post_terms y wp_set_object_terms
