php - 使用数组过滤 Woocommerce 中的随机产品
问题描述
作为 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>
解决方案
您可以通过将参数传递给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();
推荐阅读
- python-3.x - Vader 情绪分析:如何对单个单词进行评分?
- node.js - nodejs 已经是最新版本,但是 node -v 显示错误
- java - 使用 Java 解析 XML(JAXB 和根元素)
- c# - 在 C# 中构成枚举的两个部分的名称是什么?
- c++ - C++/WinRT 数据不正确的数据编组
- ios - 32 位 iOS 设备的 CoreData 错误
- python - 获取文件中出现字符串的倒数第四行
- javascript - 在页面上列出博客文章,带有图像并使用 css 进行样式化
- javascript - javascript - 点击时隐藏 div 信息
- django - 是否可以在 wagtail 中动态设置 edit_handlers?