我有一个设置为“目录可见性”的WooCommerce产品:隐藏我想从WP_Query中排除这些类型的产品。我怎样才能做到这一点?这是我获取所有产品的代码
<?php
$args = array(
'post_type' => 'product',
'posts_per_page' => -1,
);
$query = new WP_Query( $args );
?>
<?php if($query->have_posts()): ?>
<ul>
<?php while( $query->have_posts() ): $query->the_post(); ?>
<?php $product = wc_get_product(get_the_ID());?>
<li><a href="<?php the_permalink(); ?>"><?php echo $product->get_sku(); ?></a></li>
<?php endwhile; ?>
</ul>
<?php endif; ?>
答案 0 :(得分:1)
也请检查以下内容: usgin pre_get_posts
答案 1 :(得分:0)
您可以使用元查询来实现。请检查下面的代码是否相同。
$args = array(
'post_type' => 'product',
'posts_per_page' => -1,
'meta_query' => array(
array(
'key' => '_visibility',
'value' => 'hidden',
'compare' => '!=',
)
)
);
$query = new WP_Query( $args );
答案 2 :(得分:0)
从WooCommerce 3开始,可见性现在是一种分类法,而不是元数据。这是此代码;
<?php
$args = array(
'post_type' => 'product',
'posts_per_page' => -1,
'tax_query' => array(
array(
'taxonomy' => 'product_visibility',
'field' => 'name',
'terms' => 'exclude-from-catalog',
'operator' => 'NOT IN',
),
),
);
$query = new WP_Query( $args );
?>