This is a Developer level doc. If you are unfamiliar with code and resolving potential conflicts, select a WooExpert or Developer for assistance. We are unable to provide support for customizations under our Support Policy.
functions.php
file or via a plugin that allows custom functions to be added, such as the Code snippets plugin. Please don’t add custom code directly to your parent theme’s functions.php
file as this will be wiped entirely when you update the theme.
Display product attribute archive links
↑ Back to top
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* Display product attribute archive links | |
*/ | |
add_action( 'woocommerce_product_meta_end', 'wc_show_attribute_links' ); | |
// if you'd like to show it on archive page, replace "woocommerce_product_meta_end" with "woocommerce_shop_loop_item_title" | |
function wc_show_attribute_links() { | |
global $post; | |
$attribute_names = array( '<ATTRIBUTE_NAME>', '<ANOTHER_ATTRIBUTE_NAME>' ); // Add attribute names here and remember to add the pa_ prefix to the attribute name | |
foreach ( $attribute_names as $attribute_name ) { | |
$taxonomy = get_taxonomy( $attribute_name ); | |
if ( $taxonomy && ! is_wp_error( $taxonomy ) ) { | |
$terms = wp_get_post_terms( $post->ID, $attribute_name ); | |
$terms_array = array(); | |
if ( ! empty( $terms ) ) { | |
foreach ( $terms as $term ) { | |
$archive_link = get_term_link( $term->slug, $attribute_name ); | |
$full_line = '<a href="' . $archive_link . '">'. $term->name . '</a>'; | |
array_push( $terms_array, $full_line ); | |
} | |
echo $taxonomy->labels->name . ': ' . implode( ', ' . $terms_array ); | |
} | |
} | |
} | |
} |
pa_
prefix to the attribute. An example would be: pa_color
— or it wouldn’t work.
If you’d like to display this on the archive page, replace the add_action( 'woocommerce_product_meta_end', 'wc_show_attribute_links' );
with the following hook:
add_action( 'woocommerce_shop_loop_item_title', 'wc_show_attribute_links' );