2015-09-29 16 views
8

どこが間違っているか教えてください。商品のおすすめ画像が表示されません。woocommerceで商品の特集画像を入手する方法

$args = array('post_type' => 'product', 'posts_per_page' => 80, 'product_cat' => 'profiler', 'orderby' => 'rand'); 

    $loop = new WP_Query($args); 

    while ($loop->have_posts()) : $loop->the_post(); global $product; ?> 

    <div class="dvThumb col-xs-4 col-sm-3 col-md-3 profiler-select profiler<?php echo the_title(); ?>" data-profile="<?php echo $loop->post->ID; ?>"> 

    <img src="<?php get_the_post_thumbnail($loop->post->ID); ?>" data-id="<?php echo $loop->post->ID; ?>"> 

    <p><?php the_title(); ?></p> 

    <span class="price"><?php echo $product->get_price_html(); ?></span>      
    </div> 

私はすでに、私は解決策を持ってバックエンドに

+0

'$製品 - > GET_IMAGE($サイズ、$ attrの)' –

答えて

22

を特色に画像を追加しました。 私はこれを試しました。

<?php $image = wp_get_attachment_image_src(get_post_thumbnail_id($loop->post->ID), 'single-post-thumbnail');?> 

    <img src="<?php echo $image[0]; ?>" data-id="<?php echo $loop->post->ID; ?>"> 
+0

私はこれが受け入れ答えである知っているが、 の$ img_urlのポイントは何ですか?これはちょうど$ image [0]をエコーすることで動作します。 –

+0

@TonyHensler:それを取り除くのは怠け者だと感じることはありません:P –

3

get_the_post_thumbnail関数は、紹介画像のURLではなくHTMLを返します。注目画像の投稿IDを取得するにはget_post_thumbnail_idを使用し、その後、wp_get_attachment_image_srcを使用しておすすめ画像のURLを取得する必要があります。これはトリックを行う必要があります

<?php 
$args = array('post_type' => 'product', 'posts_per_page' => 80, 'product_cat' => 'profiler', 'orderby' => 'rand'); 

$loop = new WP_Query($args); 
while ($loop->have_posts()) : $loop->the_post(); global $product; ?> 
    <div class="dvThumb col-xs-4 col-sm-3 col-md-3 profiler-select profiler<?php echo the_title(); ?>" data-profile="<?php echo $loop->post->ID; ?>"> 
     <?php $featured_image = wp_get_attachment_image_src(get_post_thumbnail_id($loop->post->ID)); ?> 
     <?php if($featured_image) { ?> 
     <img src="<?php $featured_image[0]; ?>" data-id="<?php echo $loop->post->ID; ?>"> 
     <?php } ?> 
     <p><?php the_title(); ?></p> 
     <span class="price"><?php echo $product->get_price_html(); ?></span> 
    </div> 
<?php endwhile; ?> 
+0

こんにちはlimexs私はすでに解決策を得ていますが、あなたの答えに感謝します。バックエンド(woocommerce)から特定の製品にデータ変数を渡したい場合(SKUまたはタグなど)、フィールドを使用する必要があります。このユニークな識別子はhtmlデータ変数として使用したいので...私はあなたに私の質問があることを願っています –

+0

うーん、おそらく私は質問を理解していません。あなたはすでにpost_idを使用しています。これは商品を識別するのに十分だと思います。 – LIMEXS

+0

limexs:実際に私はwoocommerceにプロジェクトをアップグレードしています。だから私はすでに既存のプロジェクトに存在する別の識別子を格納する必要があります。 –

1

はこれを試してみてください。テストされ、働いています。

<?php 
    $product_meta = get_post_meta($post_id); 
    echo wp_get_attachment_image($product_meta['_thumbnail_id'][0]), 'full'); 
?> 

必要に応じてパラメータを変更できます。

+0

余分なカッコがあります。wp_get_attachment_image($ product_meta ['_ thumbnail_id'] [0]、 'full'); –

0

WC 3.0以降のバージョンでは、画像は下のコードで取得できます。

$image_url = wp_get_attachment_image_src(get_post_thumbnail_id($item->get_product_id()), 'single-post-thumbnail'); 
echo $image_url[0] 
関連する問題