Отображение для определенного атрибута продукта WooCommerce списка терминов на странице

В Woocommerce я пытаюсь создать простую страницу со всеми брендами, которые у меня есть, из атрибута продукта pa_brand. Но я не нашел правильного способа сделать это.

Таким образом, эта страница должна отображать названия связанных брендов в виде списка.


person watcher_sk    schedule 17.02.2019    source источник


Ответы (1)


Вот пользовательская функция шорткода, которая выводит список связанных имен терминов для атрибута продукта «pa_brand». Его можно использовать на любой странице или в сообщении с помощью текстового редактора содержимого Wordpress или в php-коде:

add_shortcode( 'product_attribute_list', 'shortcode_product_attribute_list' );
function shortcode_product_attribute_list( $atts ) {
    // Shortcode Attributes
    $atts = shortcode_atts( array(
        'taxonomy'    => 'pa_brand',
        'orderby'     => 'name',
        'hide_empty'  => false, 
    ), $atts, 'product_attribute_list' );

    $terms = get_terms( array(
        'taxonomy'      => $atts['taxonomy'],
        'orderby'       => $atts['orderby'],
        'hide_empty'    => $atts['hide_empty'], 
    ) );

    $html = '<ul class="' . $atts['taxonomy'] . ' brands">';

    // Loop through the taxonomy terms
    foreach( $terms as $term ){
        $html .= '<li><a href="' . get_term_link( $term, $atts['taxonomy'] ) . '">' . $term->name . '</a></li>';
    }

    return $html . '</ul>'; // Return the output
}

Код находится в файле function.php вашей активной дочерней темы (или активной темы). Проверено и работает.

Пример ИСПОЛЬЗОВАНИЯ:

1) Внутри страницы или в текстовом редакторе контента публикации (или текстовом виджете):

[product_attribute_list]

2) В шаблоне или коде php:

echo do_shortcode("[product_attribute_list]");

Вам нужно будет только добавить некоторые правила CSS в файл styles.css вашей активной темы, чтобы получить желаемый дизайн.

person LoicTheAztec    schedule 17.02.2019
comment
Это круто. Большое спасибо :) - person watcher_sk; 17.02.2019