2014-11-17 2 views
0

을 포함하는 코드 아래 코드에서 foreach을 사용하여이를 변경하는 가장 좋은 방법은 $instock입니다. 나는 foreachif 문을 사용하여 시도했지만 다음은 endforeach

루프가 표시되지 않습니다

$args = array('posts_per_page' => 4, 'post_type' => 'product','meta_key' => '_featured','meta_value' => 'yes','orderby' =>'rand','order' => 'DESC'); 

$myposts = get_posts($args); 

foreach ($myposts as $post) : 
    setup_postdata($post); 
    $product = new WC_Product(get_the_ID()); 
    $price = $product->price; 
    $instock = $product->is_in_stock(); 
?> 
    <div class="col-sm-6 col-md-3"> 
     <div class="thumbnail Product_Box"> 
      <a href="<?php the_permalink()?>"><?php the_post_thumbnail();?></a> 
      <div class="caption"> 
       <h4><?php the_title()?><br /> 
        <span class="text-color">$<?php echo $price; ?></span> 
       </h4> 
      </div> 
     </div> 
    </div> 

<?php endforeach; 
wp_reset_postdata();?> 

답변

1

깨끗한 솔루션은 재고가 아니라면 제품을 생략하는 것입니다. 따라서 얻을 수있는 것은 다음과 같습니다.

$args = array('posts_per_page' => 4, 'post_type' => 'product','meta_key' => '_featured','meta_value' => 'yes','orderby' =>'rand','order' => 'DESC'); 

$myposts = get_posts($args); 

foreach ($myposts as $post) : 
    setup_postdata($post); 
    $product = new WC_Product(get_the_ID()); 
    $price = $product->price; 
    $instock = $product->is_in_stock(); 

    if (!$instock) { 
     continue; 
    } 
?> 
    <div class="col-sm-6 col-md-3"> 
     <div class="thumbnail Product_Box"> 
      <a href="<?php the_permalink()?>"><?php the_post_thumbnail();?></a> 
      <div class="caption"> 
       <h4><?php the_title()?><br /> 
        <span class="text-color">$<?php echo $price; ?></span> 
       </h4> 
      </div> 
     </div> 
    </div> 

<?php endforeach; 
wp_reset_postdata();?> 
+0

감사합니다, 나는이 그냥 피곤 있고 그냥 –

+0

당신의 재고가없는 제품에 포함 된 내용을 $의 inStock 말해 수 아무것도 표시하지 않는 이유는 무엇입니까? –

+0

그래, 100 % 일하지 않고 휴식을 취하 셨습니다 - 올바른 방향으로 나를 보내 주셔서 감사합니다! 나는 $ instock에 현재 사용하고있는'$ product-> stock_status;가 있음을 발견했다. 이것은'instock'과'outofstock'의 결과를 주지만 IF를 사용하면 여전히 빈 루프를 얻는다. –

관련 문제