我在使用wordpress并设置了自定义帖子类型(称为product& custom taxonomy,名为product_category),我想做以下操作
我将有一个名为目录的页面,并希望在一个页面上显示子类别下的所有类别/子类别和产品。
但我不确定它的代码。
获取所有类别并回显标题,对于每个父类别,子项回显子类别,然后其他产品只回显父类别和产品。
第1类(回声父母的东西) 子类别1(echo子类别的东西) 帖子1(回声帖子) 发布2 子类别2 发布1 发布2
第2类 子类别1 发布1 发布2
第3类 子类别1 发布1 发布2
答案 0 :(得分:0)
此代码应该适合您。
$top_level_terms = get_terms( 'product_cat', array( 'parent' => 0 ) );
foreach( $top_level_terms as $top_term )
{
$child_terms = get_terms( 'product_cat', array( 'child_of' => $top_term->term_id ));
//Parent Category Name
echo '<b>'.$top_term->name .'</b><br>';
$top_id=$top_term->term_id;
if(count($child_terms)>0)
{
foreach ( $child_terms as $child_term )
{
$id=$child_term->term_id;
//Child category name
echo '<b>=>' .$child_term->name .'</b><br>';
$myposts=get_posts(array(
'post_type' => 'product',
'tax_query' => array(
array(
'taxonomy' => 'product_cat',
'field' => 'term_id',
'terms' => $id)
))
);
echo '<ul>';
foreach ($myposts as $mypost) {
//Posts
echo '<li>'.$mypost->post_title.'</li>' ;
}echo '</ul>';
wp_reset_postdata();
}
}
else
{
$myposts=get_posts(array(
'post_type' => 'product',
'tax_query' => array(
array(
'taxonomy' => 'product_cat',
'field' => 'term_id',
'terms' => $top_id)
))
);echo '<ul>';
foreach ($myposts as $mypost) {
echo '<li>'.$mypost->post_title.'</li>' ;
}
echo '</ul>';
wp_reset_postdata();
}
}
如果您有任何问题,请告诉我