4

This is my code for display an atributte below a product title. How can I display it like a link to archive page of this attributte?

add_action( 'woocommerce_single_product_summary', 'custom_template_single_title', 5 );
function custom_template_single_title() {
    global $product;

    $brand_name = $product->get_attribute('Autor');

    echo '<div class ="author-product">';

    if( $brand_name )
        echo  $brand_name;

    echo '</div>';
}
LoicTheAztec
  • 184,753
  • 20
  • 224
  • 275

1 Answers1

3

First, $product->get_attribute('Autor') can give multiple coma separated term names.

Below, we add the term link to each term name (if there is more than one):

add_action( 'woocommerce_single_product_summary', 'custom_template_single_title', 5 );
function custom_template_single_title() {
    global $product;

    $taxonomy     = 'pa_autor'; // <== The product attribute taxonomy
    $linked_terms = []; // Initializing

    if ( $term_names = $product->get_attribute($taxonomy) ) {
        // Loop through the term names
        foreach( explode(', ', $term_names) as $term_name ) {
            $term_id        = get_term_by('name', $term_name, $taxonomy)->term_id; // get the term ID
            $term_link      = get_term_link( $term_id, $taxonomy ); // get the term link

            $linked_terms[] = '<a href="' . $term_link . '">' . $term_name . '</a>';
        }

        // Output
        echo '<div class ="author-product">' . implode(', ', $linked_terms) . '</div>';
    }
}

Code goes in functions.php file of your active child theme (or active theme). Tested and works.

LoicTheAztec
  • 184,753
  • 20
  • 224
  • 275