Вопрос конечно очень простой, но в интернете, как обычно, нет того что нужно.
Нужно вывести 1 товар из категории или несколько товаров из категории в определенном месте.
Каким способом лучше это сделать?
Я нашел такие варианты:
1) Шорт-код для php
echo do_shortcode('[products tag="tag" columns="4"]');
Не подходит в рамках будущих задач. Нужно будет выводить товары из разных категорий по одной штуке по тегу.
2) WP_query запрос к бд
$args = array(
// Использование аргумента tax_query для установки параметров терминов таксономии
'tax_query' => array(
// Использование нескольких таксономий требует параметр relation
'relation' => 'AND', // значение AND для выборки товаров принадлежащим одновременно ко всем указанным терминам
// массив для категории
array(
'taxonomy' => 'product_cat',
'field' => 'id',
'terms' => array( 16 ),
),
),
// Параметры отображения выведенных товаров
'posts_per_page' => 2, // количество выводимых товаров
'post_type' => 'product', // тип товара
'orderby' => 'date', // сортировка
);
$loop= new WP_Query($args);
while ( $loop->have_posts() ): $loop->the_post(); ?>
<div <?php post_class("inloop-product"); ?>>
<div class="row">
<div class="col-sm-4">
<?php the_post_thumbnail("thumbnail-215x300"); ?>
</div>
<div class="col-sm-8">
<h4>
<a href="<?php the_permalink(); ?>">
<?php the_title(); ?>
</a>
</h4>
<?php the_content(); ?>
<p class="price">
<?php _e("Price:","examp"); ?>
<?php woocommerce_template_loop_price(); ?>
</p>
<?php woocommerce_template_loop_add_to_cart(); ?>
</div>
</div>
</div>
<?php endwhile; ?>
Ок. Но тут используется кастомная верстка карточки товара, что хотелось бы избежать и привести всё отображение товара к одному виду.
3) Хуки. Это лучше всего. Ищу информацию как воспользоваться хуком из archive-product.php, который как раз и выводит товары в стандартной верстке вукомерса.
https://github.com/woocommerce/woocommerce/blob/ma...
Насколько разобрался нужный мне хук + луп:
woocommerce_product_loop_start();
wc_get_template_part( 'content', 'product' ); - вывод товара.
woocommerce_product_loop_end();
Вот хотелось бы понять, как получить товары из нужной категории (тега, аттрибута) с помощью такого кода. Как передать параметры вывода товара в хук. Вообще возможно это или нет?