获取Woocommerce产品类别图片网址

时间:2018-07-18 09:51:52

标签: php wordpress image woocommerce custom-taxonomy

我已使用以下代码获取Woocommerce产品类别的缩略图URL,但仅输出带有<img>的{​​{1}}标签。

src="unknown"

使其工作的最佳方法是什么?

修改

在第二个让牛仔类别的缩略图中,它仅输出$cat_slug = t-shirts; $thumbnail_id = get_woocommerce_term_meta( $cat_slug, 'thumbnail_id', true ); $image = wp_get_attachment_url( $thumbnail_id ); echo '<img src="'.$image.'" alt="" width="50" height="50" />';

<img src(unknown) alt="" width="50" height="50" />

2 个答案:

答案 0 :(得分:3)

函数get_woocommerce_term_meta()需要术语ID而不是术语slug。因此,您可以使用get_term_by()的Wordpress函数从术语条中获取术语ID。

所以您的代码将是:

$term_slug    = 't-shirts';
$taxonomy     = 'product_cat';
$term_id      = get_term_by( 'slug', $term_slug, $taxonomy )->term_id;
$thumbnail_id = get_woocommerce_term_meta( $term_id, 'thumbnail_id', true );
$image        = wp_get_attachment_url( $thumbnail_id );

// Output
echo '<img src="'.$image.'" alt="" width="50" height="50" />';

经测试可正常工作


附加版本3 (与您的评论有关)

我使用foreach循环进行了一些其他更改,以优化代码并允许您添加所需数量的产品类别标签

我还添加了术语链接,并做了一些小的更改。

<?php
$term_slugs   = array('jeans', 't-shirts');
$taxonomy     = "product_cat";

// Loop though the term slugs array
foreach ( $term_slugs as $term_slug ):
    $term        = get_term_by( 'slug', $term_slug, $taxonomy );
    if( $term ):
        $term_link   = get_term_link( $term, $taxonomy );

        $thumb_id    = get_woocommerce_term_meta( $term->term_id, 'thumbnail_id', true );
        $img_src     = wp_get_attachment_url( $thumb_id );
        ?>
        <div class="list-item">
            <div class="item-image">
                <img src="<?php echo $img_src; ?>" alt="" width="50" height="50" />
            </div>
            <div class="item-name">
                <a href="<?php echo $term_link; ?>"><?php echo $term->name; ?></a>
            </div>
        </div>
    <?php endif;
endforeach; ?>

答案 1 :(得分:2)

get_woocommerce_term_meta具有term_id作为第一个参数。请参阅Here

编写类似这样的代码

$termId = 1;
$thumbnail_id = get_woocommerce_term_meta( $termId, 'thumbnail_id', true );

OR

要从子弹名称获取缩略图,您必须使用get_term_by来获取术语ID。您可以参考here

$termName = 't-shirts';
$category = get_term_by('name', $termName, 'product_cat');

$termId = $category->term_id;
$thumbnail_id = get_woocommerce_term_meta( $termId, 'thumbnail_id', true );
$image = wp_get_attachment_url( $thumbnail_id );
echo '<img src="'.$image.'" alt="" width="50" height="50" />';