WordPress с пользовательским запросом woocommerce

Я новичок в wp dev и пытаюсь выяснить, как заменить или изменить запрос woocommerce, который показывает все мои продукты на любой странице архива или на странице, которая показывает мой список продуктов, не уверен, что она вызывается, а на странице, которая показывает рис, имя, цену и ссылку на страницу продукта. У меня несколько категорий, поэтому я думаю, мне нужно будет добавить код, чтобы показывать разные категории в зависимости от того, на какой странице кота они находятся? Если я не посмотрю на это слишком глубоко.

Я пытаюсь сделать расширенный цикл, который показывает мне группы продуктов, основанные на нескольких вещах. Сначала я хочу видеть все предлагаемые продукты, тогда я хочу увидеть продукты, которые не старше 6 месяцев, а затем все остальное в меню, а затем название по возрастанию.

Чтобы сделать его еще более сложным, я не хочу дубликатов. Я думаю, что мой код работает, но я точно не знаю, где и как его разместить, поэтому woo взлетает с ним и показывает мои результаты. Ниже приведен код, который я использую, я размещаю его на странице woocommerce.php в моей дочерней теме, и он ничего не показывает мне, если я не буду эхо или print_r. Поэтому я знаю, что у меня что-то не хватает, но, будучи новым, я не знаю, что мне нужно для поиска, чтобы увидеть результаты.

Мой код: (woocommerce.php)

<?php if ( is_shop() || is_product_category() || is_product_tag() ) { // Only run on shop archive pages, not single products or other pages // Products per page $per_page = 12; if ( get_query_var( 'taxonomy' ) ) { // If on a product taxonomy archive (category or tag) //First loop $args = array( 'post_type' => 'product', 'orderby' => array( 'meta_value' => 'DESC' ), 'meta_key' => '_featured', 'posts_per_page' => $per_page, 'paged' => get_query_var( 'paged' ), ); $loop = new WP_Query( $args ); if (have_posts()) : while ($loop->have_posts()) : $loop->the_post(); $post_id = get_the_ID(); $do_not_duplicate[] = $post_id; endwhile; endif; rewind_posts(); //Second loop $args = array( 'post_type' => 'product', 'orderby' => 'date', 'order' => 'DESC', 'date_query' => array( array( 'before' => '6 months ago', ), ), 'post__not_in' => $do_not_duplicate ); $loop = new WP_Query( $args ); if (have_posts()) : while ($loop->have_posts()) : $loop->the_post(); $post_id = get_the_ID(); $do_not_duplicate[] = $post_id; endwhile; endif; rewind_posts(); //Third loop $args = array( 'post_type' => 'product', 'orderby' => array( 'menu_order' => 'ASC', 'title' => 'ASC', 'post__not_in' => $do_not_duplicate ), ); $loop = new WP_Query( $args ); if (have_posts()) : while ($loop->have_posts()) : $loop->the_post(); $post_id = get_the_ID(); $do_not_duplicate[] = $post_id; endwhile; endif; } else { // On main shop page $args = array( 'post_type' => 'product', 'orderby' => 'date', 'order' => 'DESC', 'posts_per_page' => $per_page, 'paged' => get_query_var( 'paged' ), ); } // Set the query $products = new WP_Query( $args ); // Standard loop if ( $products->have_posts() ) : while ( $products->have_posts() ) : $products->the_post(); endwhile; wp_reset_postdata(); endif; } else { // If not on archive page (cart, checkout, etc), do normal operations woocommerce_content(); } 

Любая помощь, чтобы направить меня в правильном направлении, будет большой помощью!

Обновить

Я забыл добавить 'post_type' => 'product' в своих args (обновил его только сейчас), но теперь, когда я могу видеть свои заголовки, когда добавляю the_title(); в моем цикле while, как мне сказать, вместо этого выплюнуть все, как на любой странице архива (вызвать шаблон?), а также как сделать его более общим, так что в зависимости от того, какую категорию / страницу архива я на нем будет просто показывать продукты для этой категории? Еще раз спасибо!

Solutions Collecting From Web of "WordPress с пользовательским запросом woocommerce"

  // Standard loop if ( $products->have_posts() ) : while ( $products->have_posts() ) : $products->the_post(); endwhile; wp_reset_postdata(); endif; 

Это буквально не показывает данных. Попытайтесь добавить по крайней мере the_title(); там.

Страница, на которую вы ссылаетесь, – archive-product.php, которая в основном является страницей магазина в woocommerece и говорит о запросе в woocommerece, я дам ссылку на ua link, которая может решить вашу проблему относительно этого цикла woocommerece