Я пытаюсь использовать таксономию категории Woocommerce для отображения соответствующих продуктов на странице. Тип настраиваемого сообщения позволяет мне добавить список категорий продуктов на пользовательскую страницу, но я не уверен, как отфильтровать его, чтобы отображать только ту категорию, которую я выбрал для соответствующей страницы. На данный момент он показывает все свои продукты, не фильтруются те, которые мне нужны:Продукты WooCommerce в Custom Post Type
$args = array('post_type' => 'product', 'posts_per_page' => -1, 'taxonomy' => 'product_cat');
$loop = new WP_Query($args);
while ($loop->have_posts()) : $loop->the_post();
global $product;
echo '<div class="background-img"><a href="'.get_permalink().'">' . woocommerce_get_product_thumbnail().'<br /> '.get_the_title().'</a>';
echo $product->get_price_html();
echo '<form class="cart" method="post" enctype="multipart/form-data">
<input type="hidden" name="add-to-cart" value="';
echo esc_attr($product->id);
echo '">
<button type="submit">';
echo $product->single_add_to_cart_text();
echo '</button>
</form>';
echo '</div>';
endwhile;
$attachment_ids = $product->get_gallery_attachment_ids();
foreach($attachment_ids as $attachment_id)
{
echo $image_link = wp_get_attachment_url($attachment_id);
}
wp_reset_query();
Вот версия сайта разработчика, это все еще довольно сырой и нуждается много стайлинга, но должно дать представление:
http://betamarine.mainboard.com/engine/beta-14-z482/
Я использую следующий плагин:
https://wordpress.org/plugins/custom-post-type-ui/
я могу создать пользовательские tĀ xonomy, но это дополнительный шаг и дает те же результаты. Я думаю, что я могу пропустить что-то маленькое, но я просто не понимаю.
Спасибо за ответ, прочитав Codex и пришел с этим: '$ арг = массив ( \t 'post_type' => 'продукт', \t 'posts_per_page' => -1, \t ' налог-запрос»=> Array (массив ( \t \t \t 'систематика' => 'product_cat', \t \t \t 'поле' => 'тихоход', \t \t \t 'термины' => массив ($ кошка- > slug), \t \t \t «оператор» => «В» \t \t \t)) \t \t); ' он ничего не делает, хотя, по-прежнему просто показывает все продукты, не очень хорошо на PHP - это я на правильном пути ? –
Да, вы на правильном пути, вы можете изменить: «tax-query» => array (array ('taxonomy' => 'product_cat', 'field' => 'slug', 'terms' => array ($ cat -> slug), 'operator' => 'IN')) в соответствии с вашим требованием. например. оператор поддержки «IN», «=», «LIKE», «>», «<» и т. д. –
О, мое слово, только что понял, что я использовал «налоговый запрос» вместо «tax_query» - с подчеркиванием! При этом, если я добавлю имя термина (например, «двигатель») в место массива ($ category-> slug), он будет работать, если я добавлю, что вызов переменной ничего не показывает. Я подозреваю, что это может вызвать что-то еще на странице? –