我使用以下代码在我的WordPress网站中从WooCommerce获取产品类别列表:
<?php
$taxonomy = 'product_cat';
$orderby = 'name';
$show_count = 0; // 1 for yes, 0 for no
$pad_counts = 0; // 1 for yes, 0 for no
$hierarchical = 0; // 1 for yes, 0 for no
$title = '';
$empty = 0;
$args = array(
'taxonomy' => $taxonomy,
'orderby' => $orderby,
'show_count' => $show_count,
'pad_counts' => $pad_counts,
'hierarchical' => $hierarchical,
'title_li' => $title,
'hide_empty' => $empty
);
?>
<?php $all_categories = get_categories( $args );
//print_r($all_categories);
foreach ($all_categories as $cat) {
//print_r($cat);
if($cat->category_parent == 0) {
$category_id = $cat->term_id;
?>
<?php
echo '<br /><a href="'. get_term_link($cat->slug, 'product_cat') .'">'. $cat->name .'</a>'; ?>
<?php
$args2 = array(
'taxonomy' => $taxonomy,
'child_of' => 0,
'parent' => $category_id,
'orderby' => $orderby,
'show_count' => $show_count,
'pad_counts' => $pad_counts,
'hierarchical' => $hierarchical,
'title_li' => $title,
'hide_empty' => $empty
);
$sub_cats = get_categories( $args2 );
if($sub_cats) {
foreach($sub_cats as $sub_category) {
echo $sub_category->name ;
}
} ?>
<?php }
}
?>
字符串
这工作正常,并返回产品类别的列表。我现在一直在尝试获得一个特定类别的产品列表。
示例:获取cat_id=34
的所有产品。
我知道产品被存储为职位,并一直试图做到这一点,但似乎不能。
如何获取特定类别的产品列表?
4条答案
按热度按时间ippsafx71#
字符串
这将列出所有产品的缩略图和名称沿着与他们的链接到产品页。更改类别名称和职位的每页根据您的要求。
ttp71kqs2#
不要使用
WP_Query()
或get_posts()
。从WooCommerce文档:wc_get_products和WC_Product_Query提供了一种标准的检索产品的方法,可以安全使用,并且不会因为未来WooCommerce版本中的数据库更改而中断。构建自定义WP_Query或数据库查询可能会在未来WooCommerce版本中中断您的代码,因为数据将向自定义表移动以获得更好的性能。
您可以像这样检索您想要的产品:
字符串
WooCommerce documentation
68bkxrlz3#
字符串
这应该抓住所有你想要的产品,我可能有错误的职位类型,虽然我不太记得什么woo-commerce使用的职位类型。
2lpgd9684#
始终使用tax_query从特定类别或任何其他分类中获取帖子/产品。您也可以使用特定分类的ID/slug获取产品...
字符串