Обновлено - следующий код будет отображать определенные атрибуты продукта на:
- Домашняя страница для пользовательского цикла товаров с использованием
is_front_page()
Условный тег WordPress
- Определено Страницы архива категории продукта с использованием
is_product_category()
Условный тег Woocommerce
код:
add_action('woocommerce_after_shop_loop_item','display_loop_product_attribute' );
function display_loop_product_attribute() {
global $product;
// The Product attribute to be displayed
$product_attributes = array('pa_size');
// The targeted Product category archive pages (slugs)
$categories = array('t-shirts', 'hoodies', 'socks');
$output = array(); // Initializing
// Targetting home page and specific product category archive pages
if( is_front_page() || is_product_category($categories) ) {
// Loop through the array of product attributes
foreach( $product_attributes as $taxonomy ){
if( taxonomy_exists($taxonomy) ){
if( $values = $product->get_attribute($taxonomy) ){
// The product attribute label name
$label_name = get_taxonomy($taxonomy)->labels->singular_name;
// Storing attributes for output
$output[] = '<span class="'.$taxonomy.'">'.$label_name.': '.$values.'</span>';
}
}
}
// Output attribute name / value pairs, separate by a "<br>"
echo '<div class="product-attributes-custom">'.implode('<br>', $output).'</div>';
}
}
Код помещается в файл function.php вашей активной дочерней темы (или активной темы). Проверено и работает.
Добавление: Чтобы отформатировать имя каждого атрибута в отдельном теге <span>
…
Вставьте в код функции, после этой строки:
// The product attribute label name
$label_name = get_taxonomy($taxonomy)->labels->singular_name;
Следующее:
// convert string of term names to an array
$values = explode(', ', $values);
// Format each and set back to a string
$values = '<span>' . implode('</span> <span>', $values) . '</span>';
Related: Отображение атрибутов продукта на странице архивов отдельных категорий продуктов Woocommerce