我在我的主题上使用woocommerce,并且它带有product_cat
字词作为商店产品的默认类别。我需要在每个product_cat
存档上显示其直接子项和子项,而不是子项子项。
我试过了:
<?php $thispage = $wp_query->post; wp_list_categories("taxonomy=product_cat&term=". $term->slug."&title_li=&child_of=".$thispage->slug);?>
它返回所有product_cat
作为ul和存档的子项im,但不是归档的子项。
我试过了:
global $post;
$terms = get_the_terms( $post->ID, 'product_cat');
foreach ( $terms as $term )
$currentID = get_the_ID();
$args=array(
'taxonomy'=>'product_cat',
'term' => $term->slug,
'child_of'=>$currentID
);
$my_query = new WP_Query( $args );
?>
<?php if ( $my_query->have_posts() ): ?>
<?php while ( $my_query->have_posts() ) : $my_query->the_post(); ?>
<li> <a href="<?php the_permalink(); ?>" id="booklink"><?php the_title();?></a></li>
<?php endwhile; ?>
<?php endif; ?>
它返回了所有当前存档的子项和子项子项,没有自己的子项。
所以我试过了:
$term_id = $terms;
$taxonomy_name = 'product_cat';
$termchildren = get_term_children( $term_id, $taxonomy_name );
echo '<ul>';
foreach ( $termchildren as $child ) {
$term = get_term_by( 'id', $child, $taxonomy_name );
echo '<li><a href="' . get_term_link( $term->name, $taxonomy_name ) . '">' . $term->name . '</a></li>';
}
echo '</ul>';
并且它什么都没有返回。
明白了......如果这只返回子词:
wp_list_categories( array('child_of' => get_queried_object_id(),'taxonomy' => 'product_cat','title_li' => '','depth' => 1, 'show_option_none'=> ''));
也许我可以在查询args中调用它的所有子项,然后调用wp_list_categories。尝试:
$terms = get_the_terms( $post->ID, 'product_cat'); foreach ( $terms as $term ) $currentID = get_the_ID(); $args=array( 'taxonomy'=>'product_cat', 'term' => $term->slug, 'exclude '=> array('child_of' => get_queried_object_id()) ); $my_query = new WP_Query( $args );?>
但它只返回子学期的孩子,而不是the proudct_cat孩子......
任何?
我无言以对。谁有线索?
*对不起我的英语不好
答案 0 :(得分:0)
我认为你可以做点什么
<?php
$taxonomy = 'product_cat';
// get the term IDs assigned to post.
$post_terms = wp_get_object_terms( $product->id, $taxonomy, array( 'fields' => 'ids' ) );
// separator between links
$separator = ', ';
if ( !empty( $post_terms ) && !is_wp_error( $post_terms ) ) {
$term_ids = implode( ',' , $post_terms );
$terms = wp_list_categories( 'title_li=&style=none&echo=0&child_of=' .get_queried_object_id() . '&taxonomy=' . $taxonomy . '&include=' . $term_ids );
$terms = rtrim( trim( str_replace( '<br />', $separator, $terms ) ), $separator );
// display post categories
echo $terms;
}
?>