1 回答
TA贡献1998条经验 获得超6个赞
<li>如果术语有父类别并且因此是子类别,则可以将类别设置为。通过这个类,您可以设置它在 CSS 中的外观,并使其看起来像“子类别”:
<!-- code before -->
<li <?php if( $cat->parent !== 0 ) { echo 'class="child_cat" '; } ?>>
<a href="<?php echo $term_link; ?>">
<?php echo $cat->name; ?>
</a>
</li>
<!-- code after -->
当$cat有父级使用$cat->parent该类时将被添加。在 style.css 中,您可以调整样式:
.child_cat { font-size: 0.9rem; padding-left: 2.5rem; }
这样子类别将具有较小的字体大小和左侧的填充。
编辑:
您希望子类别在其各自的父类别下方列出。我建议使用get_terms两次,一次用于接父母,另一次用于接孩子。循环遍历它们。您的代码可以如下所示:
<ul class="list-unstyled">
<?php
$parent_arguments = array('parent' => 0, 'hide_empty' => true );
$parent_terms = get_terms('product_cat', $parent_arguments );
foreach ( $parent_terms as $parent_term ) {
echo '<li><a href="'.get_term_link( $parent_term, "product_cat" ).'">'.$parent_term->name.'</a></li>'; // Parent term
$child_arguments = array( 'parent' => $parent_term->term_id, 'hide_empty' => true );
$child_terms = get_terms( 'product_cat', $child_arguments );
echo '<ul>';
foreach( $child_terms as $child_term ) {
echo '<li class="child_cat"><a href="'.get_term_link( $child_term, "product_cat" ).'">'.$child_term->name.'</a></li>'; // Child term
}
echo '</ul>';
} ?>
</ul>
- 1 回答
- 0 关注
- 107 浏览
添加回答
举报