使用query_posts访问woocommerce产品属性

时间:2015-02-23 16:07:27

标签: php wordpress woocommerce

我正在查询帖子,如下所示:

query_posts('post_type=Product&showposts=-1');

这将返回所有类型产品的帖子。但我在wooCommerce中创建的产品上有自定义属性,但我似乎无法在任何地方找到此信息。

我尝试使用:

$thePost = get_post_custom()

我也尝试过:

$thePost = get_post_meta(get_the_ID)

当我打印这些时,我得到了很多信息,但我无法在任何地方看到来自woocommerce的产品属性

下图显示了如何在产品上设置此信息。

enter image description here

查询帖子后如何访问此信息? 特别是我需要提取颜色和大小。

1 个答案:

答案 0 :(得分:1)

产品变体形式保存为另一个子帖子(自定义帖子类型product_variation)。以下代码未经测试,但您应该明白这一点。

query_posts('post_type=Product&showposts=-1');
while( have_posts() ){
  the_post();
  $product_id = get_the_ID();  

  $variations = get_posts( array('post_type' => 'product_variation', 'post_parent' => $product_id, 'posts_per_page' => -1 ) );

  foreach( $variations as $var){
    $var_customs = get_post_customs( $var->ID );
    // now you can inspect "meta" fields
  }
}

因此,您有ID = 7的产品 - > post_type=product,其变体为post_type=product_variation&post_parent=7。并且尺寸和库仑被保存为这些变化的元值。元键以attribute_pa_...开头。