wordpress Woocommerce类别循环中的缩略图

gudnpqoy  于 12个月前  发布在  WordPress
关注(0)|答案(1)|浏览(194)

我正在尝试创建一个自定义循环来显示我网站上的所有WooCommerce类别。它应该相当简单,但我在获取类别缩略图方面遇到了问题。无论我做什么,我似乎最终都会得到全尺寸的图像。下面是我的代码:

$args = array(
 'taxonomy' => 'product_cat',
 'orderby' => 'name',
 'order' => 'ASC',
 'hide_empty' => false,
 'exclude' => '21'
);

echo '<ul>';
foreach( get_categories( $args ) as $category ) :
    $thumbnail_id = get_term_meta( $category->term_id,'thumbnail_id', true );
    $image = wp_get_attachment_url( $thumbnail_id );
    echo '<li><a href="'.$category->slug.'" class="label" title="' . $category->name . '">';
    if($image!=""):
        echo '<img src="' . $image . '">';
        endif;

    echo $category->cat_name.'</a></li>';
endforeach;

字符串
我已经搜索过了,但其他人似乎都得到了正确的图像。我得到的是上传的全尺寸图像。我在这里错过了什么吗?有人知道这可能是不正确的原因吗?这可能是一个主题问题?

sr4lhrrt

sr4lhrrt1#

wp_get_attachment_url()替换为wp_get_attachment_image()以获得缩略图大小的图像 (或指定所需的图像大小)
此外,您应该使用get_term_link()来获取术语URL,而不是使用术语slug。
所以你的代码将是:

$args = array(
 'taxonomy' => 'product_cat',
 'orderby' => 'name',
 'order' => 'ASC',
 'hide_empty' => false,
 'exclude' => '21'
);

echo '<ul>';
foreach( get_categories( $args ) as $category ) :
    $thumbnail_id = get_term_meta( $category->term_id, 'thumbnail_id', true );
    $image_html = wp_get_attachment_image( $thumbnail_id, 'woocommerce_thumbnail' );
    $term_link  = get_term_link( $category, 'product_cat' );
    echo '<li><a href="'.$term_link.'" class="label" title="' . $category->name . '">';
    if( $image_html ):
        echo $image_html;
    endif;

    echo $category->cat_name.'</a></li>';
endforeach;

字符串
它应该像预期的那样工作。
您可以选择不同的尺寸:

  • thumbnail
  • gallery_thumbnail
  • woocommerce_gallery_thumbnail
  • woocommerce_single
  • single.

相关问题