Я пытаюсь создать пользовательский цикл в 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(); ?>
Может ли кто-нибудь привести меня в правильном направлении?
Заранее спасибо!
Я только что столкнулся с этим,
Это не напрямую для вашей проблемы, но может быть основой этого.
Кажется, что избранные элементы больше не хранятся как мета:
$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,
);`
Рекомендуемые товары 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();
?>
Я думаю, что ваш массив значений ключей находится слишком далеко в ожидаемой иерархии массивов, попробуйте это:
$args = array(
'posts_per_page' => 1,
'orderby' => 'rand',
'post_type' => 'product',
'meta_query' => array(
array(
'key' => '_featured',
'value' => 'yes',
)
)
);
У меня та же проблема. Попробуй это ! Работает для меня
<?php
$featured_query = new WP_Query( array(
'tax_query' => array(
array(
'taxonomy' => 'product_visibility',
'field' => 'name',
'terms' => 'featured',
'operator' => 'IN'
),
),
) );
?>