如何在 WP 自定义循环中显示随机特色产品(woocommerce)?
How to show random featured products (woocommerce) in a WP custom loop?
我正在尝试在 Wordpress 中为 Woocommerce 产品设置一个自定义循环。我想在循环中展示一个随机的特色产品。但出于某种原因,它没有正确理解我的论点,而是从所有可用产品中随机选择一个产品。
这是我目前正在使用的代码。它确实显示了一个随机产品,但它忽略了代码的特色部分。
$args = array(
'posts_per_page' => 1,
'orderby' => 'rand',
'post_type' => 'product',
'meta_query' => array(
'key' => '_featured',
'value' => 'yes'
)
);
$loop = new WP_Query( $args );
while ( $loop->have_posts() ) : $loop->the_post(); global $product; ?>
<li>
<a href="<?php echo the_permalink(); ?>">
<h3><?php the_title(); ?></h3>
</a>
</li>
<?php endwhile;
wp_reset_query(); ?>
有人可以引导我走向正确的方向吗?
提前致谢!
我认为您的键值数组在预期的数组层次结构中太靠上了,试试这个:
$args = array(
'posts_per_page' => 1,
'orderby' => 'rand',
'post_type' => 'product',
'meta_query' => array(
array(
'key' => '_featured',
'value' => 'yes',
)
)
);
我刚遇到这个,
它不直接针对您的问题,但可能是它的基础。
似乎特色项目不再存储为元:
$meta_query = WC()->query->get_meta_query();
$tax_query = WC()->query->get_tax_query();
$tax_query[] = array(
'taxonomy' => 'product_visibility',
'field' => 'name',
'terms' => 'featured',
'operator' => 'IN',
);
$query_args = array(
'post_type' => 'product',
'post_status' => 'publish',
'ignore_sticky_posts' => 1,
'posts_per_page' => 1,
'meta_query' => $meta_query,
'tax_query' => $tax_query,
);`
我遇到了同样的问题。试试这个 !适合我
<?php
$featured_query = new WP_Query( array(
'tax_query' => array(
array(
'taxonomy' => 'product_visibility',
'field' => 'name',
'terms' => 'featured',
'operator' => 'IN'
),
),
) );
?>
WooCommerce 3 中的特色产品循环
<ul class="products">
<?php
$args = array(
'post_type' => 'product',
'posts_per_page' => 12,
'orderby' => 'rand',
'tax_query' => array(
array(
'taxonomy' => 'product_visibility',
'field' => 'name',
'terms' => 'featured',
),
),
);
$loop = new WP_Query( $args );
if ( $loop->have_posts() ) {
while ( $loop->have_posts() ) : $loop->the_post();
wc_get_template_part( 'content', 'product' );
endwhile;
} else {
echo __( 'No products found' );
}
wp_reset_postdata();
?>
我正在尝试在 Wordpress 中为 Woocommerce 产品设置一个自定义循环。我想在循环中展示一个随机的特色产品。但出于某种原因,它没有正确理解我的论点,而是从所有可用产品中随机选择一个产品。
这是我目前正在使用的代码。它确实显示了一个随机产品,但它忽略了代码的特色部分。
$args = array(
'posts_per_page' => 1,
'orderby' => 'rand',
'post_type' => 'product',
'meta_query' => array(
'key' => '_featured',
'value' => 'yes'
)
);
$loop = new WP_Query( $args );
while ( $loop->have_posts() ) : $loop->the_post(); global $product; ?>
<li>
<a href="<?php echo the_permalink(); ?>">
<h3><?php the_title(); ?></h3>
</a>
</li>
<?php endwhile;
wp_reset_query(); ?>
有人可以引导我走向正确的方向吗?
提前致谢!
我认为您的键值数组在预期的数组层次结构中太靠上了,试试这个:
$args = array(
'posts_per_page' => 1,
'orderby' => 'rand',
'post_type' => 'product',
'meta_query' => array(
array(
'key' => '_featured',
'value' => 'yes',
)
)
);
我刚遇到这个,
它不直接针对您的问题,但可能是它的基础。
似乎特色项目不再存储为元:
$meta_query = WC()->query->get_meta_query();
$tax_query = WC()->query->get_tax_query();
$tax_query[] = array(
'taxonomy' => 'product_visibility',
'field' => 'name',
'terms' => 'featured',
'operator' => 'IN',
);
$query_args = array(
'post_type' => 'product',
'post_status' => 'publish',
'ignore_sticky_posts' => 1,
'posts_per_page' => 1,
'meta_query' => $meta_query,
'tax_query' => $tax_query,
);`
我遇到了同样的问题。试试这个 !适合我
<?php
$featured_query = new WP_Query( array(
'tax_query' => array(
array(
'taxonomy' => 'product_visibility',
'field' => 'name',
'terms' => 'featured',
'operator' => 'IN'
),
),
) );
?>
WooCommerce 3 中的特色产品循环
<ul class="products">
<?php
$args = array(
'post_type' => 'product',
'posts_per_page' => 12,
'orderby' => 'rand',
'tax_query' => array(
array(
'taxonomy' => 'product_visibility',
'field' => 'name',
'terms' => 'featured',
),
),
);
$loop = new WP_Query( $args );
if ( $loop->have_posts() ) {
while ( $loop->have_posts() ) : $loop->the_post();
wc_get_template_part( 'content', 'product' );
endwhile;
} else {
echo __( 'No products found' );
}
wp_reset_postdata();
?>