Obtenga las etiquetas de producto para el producto actual solo en WooCommerce

2 minutos de lectura

avatar de usuario
DigitalSM

¿Cómo puedo mostrar solo las etiquetas de productos para la página de un solo producto actual y no todas las etiquetas de productos?

He encontrado preguntas sobre las etiquetas más populares, pero no para eso.

avatar de usuario
LoicTheAztec

Puedes usar la función wp_get_post_terms() función para la taxonomía personalizada ‘product_tag’ de WooCommerce y una definición identificación de producto Por aquí:

$output = array();

// get an array of the WP_Term objects for a defined product ID
$terms = wp_get_post_terms( get_the_id(), 'product_tag' );

// Loop through each product tag for the current product
if( count($terms) > 0 ){
    foreach($terms as $term){
        $term_id = $term->term_id; // Product tag Id
        $term_name = $term->name; // Product tag Name
        $term_slug = $term->slug; // Product tag slug
        $term_link = get_term_link( $term, 'product_tag' ); // Product tag link

        // Set the product tag names in an array
        $output[] = '<a href="'.$term_link.'">'.$term_name.'</a>';
    }
    // Set the array in a coma separated string of product tags for example
    $output = implode( ', ', $output );

    // Display the coma separated string of the product tags
    echo $output;
}

Probado y funciona.

Puedes reemplazar get_the_id() por una variable dinámica de identificación del producto también.

  • ¡Muchas gracias, funcionó! Pero, ¿cómo podría mostrar las etiquetas con sus enlaces también? En este momento solo muestro el título de la etiqueta.

    – Digital SM

    07/02/2018 a las 17:40

  • Lo siento por eso y gracias por recordármelo. Gracias por el código, es exactamente lo que estaba buscando durante muchos días.

    – Digital SM

    7 febrero 2018 a las 18:41


Ahora puede utilizar el wc_get_product_tag_list() función para obtener una lista de las etiquetas del producto. Admite proporcionar un separador junto con elementos anteriores y posteriores.

Ejemplo

<?php
    global $product;
?>
    <div class="product-tags">
        <?php echo wc_get_product_tag_list( $product->get_id(), ', ' ); ?>
    </div>

¿Ha sido útil esta solución?