2016-12-05 18 views
1

我使用Wordpress Woocommerce,我想显示某个类别的产品列表。下面是代码:大量的空<option>列表

<form method="POST" action="booktable.php"> 
<?php 
$args = array(
'product_cat' => 'test-restaurant', 
'post_type' => 'product', 
'orderby' => 'title', 
); 
$products = new WP_Query($args); 
echo "<select name='booktable'>"; 
foreach ($products as $product) { 
$products->the_post(); 
?>  
<option value="<?php the_ID(); ?> "> <?php the_title(); ?>  
<?php 
} 
echo "</select>"; 
?> 
<input type="submit" value="Book"> 
</form> 

我得到我想要的结果,但问题是,在下拉列表中有很多的空期权,以及像miltiple这样:

<option value=" "></option> 

莫非你帮我弄清楚是什么原因造成的问题?

回答

1

product_cat参数不是一个有效的参数。看wp_query可能的参数和值需要。

可能的值是

cat (int) - use category id. 
category_name (string) - use category slug. 
category__and (array) - use category id. 
category__in (array) - use category id. 
category__not_in (array) - use category id. 

不要忘了,如果你通过woocommerce产品循环,可以使不同的检索某些产品DATAS,使用tax_query或meta_query从产品达到细节。

事实上,使用通常的分类查询无法找到产品的分类标准。您需要使用tax_query并选择你所寻找的,product_catproduct_tag

$args = array(    
     'post_type' => 'product', 
     'orderby' => 'title', 
     'post_status' => 'publish', 
     'posts_per_page' => 15, 
     'tax_query'=> array(
       array(
       'taxonomy'  => 'product_cat', 
       'field' => 'slug', 
       'terms'   => 'test-restaurant', 
       'operator'  => 'IN' // Possible values are 'IN', 'NOT IN', 'AND'. 
      ) 
     ), 
     'meta_query' => array(
       array(
       'key'   => '_visibility', 
       'value'   => array('catalog', 'visible'), 
       'compare'  => 'IN' 
      ) 
     ), 
); 
$products = new WP_Query($args); 
echo "<select name='booktable'>"; 
foreach ($products as $product) { 
    // if you need to retrieve the sku 
    $product_data = new WC_Product($product->ID);  
    $sku = $product_data->get_sku(); 
?>  
<option value="<?php echo $product->ID; ?> "> <?php echo $product->post_title; ?> </option> 
<?php 
} 
echo "</select>"; 
+0

谢谢您的回答正确的税,但它没有帮助。当我使用category_name而不是product_cat时,根本不显示任何内容。 –

+0

我编辑了$ args。希望它有效;-) – Benoti

+0

非常感谢,但也有同样的问题:很多空的下拉选项。 –