我正在调整一个具有可过滤砌体布局的模板。我做了一个taxonomy-categories.php 对于过滤,我需要活动分类法的术语。我使用的模板中有以下代码
<ul id="filter">
<li><a href="#" class="current" data-filter="*" title="">*</a></li>
<?php
$categories = get_terms(\'categories\');
foreach( (array)$categories as $categorie){
$cat_name = $categorie->name;
$cat_slug = $categorie->slug;
?>
<li><a href="#" data-filter=".<?php echo esc_attr($cat_slug); ?>"><?php echo esc_attr($cat_name); ?></a></li>
<?php } ?>
</ul>
正如您所见,它采用了整个分类法中的所有术语。我希望它只接受活动的分类法子项。
所以,如果我在URL示例中。com/portfolio/name\\u of\\u cat\\u one我想列出该类别的子级。
我知道我可以用get_term_by
为了达到我的目标,我做了一些调整,但在尝试了几个小时后,没有成功,我在这里问:)
SO网友:hambos22
Well I did it..
<ul id="filter">
<li><a href="#" class="current" data-filter="*" title="">*</a></li>
<?php $term = get_term_by( \'slug\', get_query_var( \'term\' ), get_query_var( \'taxonomy\' ) ); ?>
<?php
$term_id = $term->term_id;
$taxonomy_name = \'categories\';
$termchildren = get_term_children( $term_id, $taxonomy_name );
foreach ( $termchildren as $child ) {
$term = get_term_by( \'id\', $child, $taxonomy_name );
echo \'<li><a href="#" data-filter=".\' . $term->slug . \'">\' . $term->name . \'</a></li>\';
}
?>
</ul>