为了账号安全,请及时绑定邮箱和手机立即绑定

使用数组过滤 Woocommerce 中的随机产品

使用数组过滤 Woocommerce 中的随机产品

森林海 2021-10-08 13:01:23
作为 PHP 中的菜鸟,我正在尝试使用数组过滤掉 Woocommerce 中的产品。我设法只按类别过滤它们。我还想过滤掉那些缺货和草稿的(如果可能的话,按数组)。还有一个问题,我如何添加'product_cat'多个类别?例如,当我想过滤连帽衫和衬衫时?对于库存产品,我尝试了以下代码,但不起作用:'meta_value' => array(        array(            'key' => 'get_stock_status',            'value' => 'outofstock',            'compare' => '!='        )    )不确定,如何检查它们是否是草稿。这是我的代码:<ul class="products"> <?php $args = array( 'post_type' => 'product', 'orderby' => 'rand', 'posts_per_page' => 1, 'product_cat' => 'hoodies' ); $loop = new WP_Query( $args ); if ( $loop->have_posts() ) { while ( $loop->have_posts() ) : $loop->the_post(); woocommerce_get_template_part( 'content', 'product' ); endwhile; }  wp_reset_postdata(); ?></ul>
查看完整描述

1 回答

?
弑天下

TA贡献1818条经验 获得超8个赞

您可以通过传递参数来检查产品是否有库存 meta_query


'meta_query' => array(

    array(

        'key' => '_stock_status',

        'value' => 'instock'

    )

)

检查多个类别,category__and您需要传递一组类别 ID


'category__and' => array(1,2) // select categories with array of IDs

并检查已发布的帖子/产品,您需要传递publish给post_status:


'post_status' => 'publish' // select products that are published

放在一起可能看起来像这样(注意:未测试)


 $args = array(

     'post_type' => 'product',

      'orderby' => 'rand',

      'posts_per_page' => 1,

      'category__and' => array(1,2), // replace these with your cat IDs

      'post_status' => 'publish',

      'meta_query' => array(

           array(

               'key' => '_stock_status',

               'value' => 'instock'

           )

       )

  );


  $loop = new WP_Query( $args );

  if ( $loop->have_posts() ) {

       while ( $loop->have_posts() ) : $loop->the_post();

            woocommerce_get_template_part( 'content', 'product' );

       endwhile;

  } 


  wp_reset_postdata();


查看完整回答
反对 回复 2021-10-08
  • 1 回答
  • 0 关注
  • 190 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号