Я не смог найти правильный способ получить список всех продуктов для данной категории ID (не название категории).
Код, который я использую для получения списка категорий, работает следующим образом:
$args = array(
'orderby' => $orderby,
'order' => $order,
'hide_empty' => 0,
'include' => $ids,
'parent' => 0,
);
$categories = get_terms( 'product_cat', $args );
Однако теперь для данной категории (скажем, 47) я не смог найти способ получить соответствующие продукты. Я попробовал следующий способ:
$args = array(
'posts_per_page' => 5,
'offset'=> 1,
'category' => 47
);
$products = get_posts( $args );
echo var_dump($products);
Отладка $products
массива всегда возвращает 0, что неверно, поскольку я знаю, что в категории есть продукты с идентификатором 47. Есть идеи, как исправить мой код?
woocommerce
Malloc
источник
источник
category
илиproduct_category
?Ответы:
Я подозреваю, что основная проблема заключается в том, что вы должны использовать
WP_Query
объект, а неget_posts()
. Позднее по умолчанию возвращает только элементы с post_typepost
не продуктов,Поэтому, учитывая категорию с идентификатором 26, следующий код вернет ее продукты (WooCommerce 3+):
В более ранних версиях WooCommerce видимость сохранялась как мета-поле, поэтому код был бы:
Здесь мы только возвращаем видимые продукты, 12 на страницу.
Просмотрите http://codex.wordpress.org/Class_Reference/WP_Query#Taxonomy_Parameters для получения более подробной информации о том, как работает таргетинг на категории - часто полезнее получить его по слагу, чем по идентификатору!
источник
get_posts()
неверен. Вы можете заменитьnew WP_Query($args)
наget_posts($args)
в своем коде, и это будет работать.изменить категорию (category-slug-name) по идентификатору, имени или слагу
источник
Немного опоздал, но хотел бы уточнить вещи и дать более четкий ответ. Пользователь @ benz001 дал возможный правильный ответ, но сказал что-то не так:
get_posts
возвращает любой тип пост-типов, по умолчаниюposts
пост-тип, какWP_Query
. Реальные различия между ними прекрасно объясняются ЗДЕСЬ .Дело в том, что ОП просто не хватает некоторых параметров в
$args
массиве:Определение пост-типа он ищет:
И модификация «таксономической части» поискового запроса:
Таким образом, ваши следующие строки
Покажет вам необходимые продукты :)
Все остальные дополнительные параметры, показанные @ benz001, конечно, действительны, но не запрашиваются OP, поэтому я решил оставить их в этом ответе.
источник
источник