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
Raank
Esto ya no es así. Para WP 5+ puedes usar ambos incluso para tipos de contenido personalizados.
Anatol Bivol
Ahora el Codex dice: Esta función funcionará en cualquier tipo de contenido. Alternativamente, se puede usar wp_set_object_terms().
Anatol Bivol
@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
n.r.