Wp set post terms no funciona

17 sept 2013, 22:00:40
Vistas: 22.2K
Votos: 4

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?

0
Todas las respuestas a la pregunta 1
5
22

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()

wp_set_object_terms

17 sept 2013 22:11:23
Comentarios

¡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 Raank
17 sept 2013 22:17:21

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

Anatol Bivol Anatol Bivol
10 feb 2019 11:23:21

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

Anatol Bivol Anatol Bivol
10 feb 2019 11:29:13

@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. n.r.
23 ago 2020 00:05:26

Código de calidad clásico de Wordpress.

marek.m marek.m
8 feb 2021 10:16:16