Как показать случайные товары (woocommerce) в пользовательском цикле WP?

Я пытаюсь создать пользовательский цикл в 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(); ?>

Может ли кто-нибудь привести меня в правильном направлении?

Заранее спасибо!

0

Решение

Я только что столкнулся с этим,

Это не напрямую для вашей проблемы, но может быть основой этого.

Кажется, что избранные элементы больше не хранятся как мета:

    $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,
);`
4

Другие решения

Рекомендуемые товары Loop в 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();
?>
2

Я думаю, что ваш массив значений ключей находится слишком далеко в ожидаемой иерархии массивов, попробуйте это:

$args = array(
'posts_per_page'   => 1,
'orderby'          => 'rand',
'post_type'        => 'product',
'meta_query'  => array(
array(
'key'     => '_featured',
'value'   => 'yes',
)
)
);
0

У меня та же проблема. Попробуй это ! Работает для меня

<?php
$featured_query = new WP_Query( array(
'tax_query' => array(
array(
'taxonomy' => 'product_visibility',
'field'    => 'name',
'terms'    => 'featured',
'operator' => 'IN'
),
),
) );
?>
0
По вопросам рекламы [email protected]