WooCommerce: получение изображения категории в полном размере

30 авг. 2015 г., 20:43:30
Просмотры: 30.2K
Голосов: 7

Я пытаюсь получить полноразмерное изображение для категорий моих товаров.

    $prod_categories = get_terms( 'product_cat', array(
        'orderby'    => 'name',
        'order'      => 'ASC',
        'hide_empty' => true
    ));

    foreach( $prod_categories as $prod_cat ) :
        $cat_thumb_id = get_woocommerce_term_meta( $prod_cat->term_id, 'thumbnail_id', true );
        $cat_thumb_url = wp_get_attachment_thumb_url( $cat_thumb_id );
        $term_link = get_term_link( $prod_cat, 'product_cat' );?>

        <a href="<?php echo $term_link; ?>"><img src="<?php echo $cat_thumb_url; ?>" alt="<?php echo $prod_cat->name; ?>" /></a>

    <?php endforeach; wp_reset_query();

Приведенный выше код работает, но возвращает изображение размером 150px x 150px, даже когда настройки в WooCommerce выглядят так:

Мои настройки товаров WooCommerce

Я хотел бы получить изображение большего размера или в полном размере. Спасибо!

0
Все ответы на вопрос 1
1

Спасибо Mike Jolley (автору плагина Woocommerce) за решение с использованием: wp_get_attachment_image_src

$prod_categories = get_terms( 'product_cat', array(
        'orderby'    => 'name', // Сортировка по названию
        'order'      => 'ASC',  // По возрастанию
        'hide_empty' => true    // Скрыть пустые категории
    ));

    foreach( $prod_categories as $prod_cat ) :
        $cat_thumb_id = get_woocommerce_term_meta( $prod_cat->term_id, 'thumbnail_id', true );
        $shop_catalog_img = wp_get_attachment_image_src( $cat_thumb_id, 'shop_catalog' );
        $term_link = get_term_link( $prod_cat, 'product_cat' ); ?>

        <a href="<?php echo $term_link; ?>"><img src="<?php echo $shop_catalog_img[0]; ?>" alt="<?php echo $prod_cat->name; ?>" title="Изображение категории <?php echo $prod_cat->name; ?>" /></a>

    <?php endforeach; wp_reset_query();
1 сент. 2015 г. 19:11:58
Комментарии

Отличный ответ. Обратите внимание: для тех, кто наткнётся на это. get_woocommerce_term_meta устарел начиная с версии 3.6. Вместо этого используйте get_term_meta. Проверено и работает в версии 5.4.1.

Sam Sam
11 мая 2020 г. 20:40:45