php – 按属性过滤的WooCommerce相关产品

开发技术 作者: 2024-06-28 19:55:01
我看过 this question和 this one,但我仍然被卡住了. 我有一个属性“status”,我只想要出现值为“OPEN”的类(产品).我正在编辑related.php WooCommerce模板文件. 这是我尝试过的两个代码版本. 版本1: $args = apply_filters( 'woocommerce_related_products_args', array( 'post
我看过 this question和 this one,但我仍然被卡住了.

我有一个属性“status”,我只想要出现值为“OPEN”的类(产品).我正在编辑related.PHP WooCommerce模板文件.

这是我尝试过的两个代码版本.

版本1:

$args = apply_filters( 'woocommerce_related_products_args',array(
'post_type'            => 'product','ignore_sticky_posts'  => 1,'no_found_rows'        => 1,'posts_per_page'       => $posts_per_page,'orderby'              => $orderby,'post__in'             => $related,'post__not_in'         => array( $product->id ),'Meta_query' => array(
   array(
    'key' => 'status','value' => 'OPEN',),) );@H_502_18@ 
 

版本2:

$key="status";
    $value="OPEN";
    $query_status = array('Meta_key' => $key,'Meta_value' => $value);
    $Meta_query[] = $query_status;

    $args = apply_filters( 'woocommerce_related_products_args',array(
    'post_type'            => 'product','Meta_query'           => $Meta_query,) );

    $products                    = new WP_Query( $args );@H_502_18@ 
 

第一个版本不会显示相关产品,因此会破坏代码.第二个没有效果.

我该如何解决这个问题?

谢谢

解决方法

好的,我有答案! WooCommerce以两种方式存储自定义属性,但在这种情况下,我需要使用术语查询而不是元查询.这是最终的查询,就像一个魅力:

$args = apply_filters( 'woocommerce_related_products_args',array(
       'post_type'            => 'product','posts_per_page'       => 4,'tax_query'      =>     array(
              array(
                      'taxonomy' => 'pa_status','field' =>      'slug','terms' => 'open'
              )
        )
) );@H_502_18@
原创声明
本站部分文章基于互联网的整理,我们会把真正“有用/优质”的文章整理提供给各位开发者。本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
本文链接:http://www.jiecseo.com/news/show_35161.html