,以便以后可以制作一个过滤器,以根据自定义帖子类型值包含的术语进行过滤。
<?php
$args=array(
'public' => true,
'_builtin' => false
);
$output = 'names'; // or objects
$operator = 'and';
$taxonomies=get_taxonomies($args,$output,$operator);
if ($taxonomies) {
foreach ($taxonomies as $taxonomy ) {
$terms = get_terms($taxonomy);
foreach ( $terms as $term) {
?>
<li><br><a href="#"><input type="checkbox" name="profile[]" value=""><?php echo $term->name; ?> <br/></a></li>
<?php
}
}
}
?>
我到目前为止所拥有的。
提前谢谢!
#1 楼
您需要将附加参数传递给get_terms()
。默认设置是隐藏“空”字词-分配给没有帖子的字词。$terms = get_terms([
'taxonomy' => $taxonomy,
'hide_empty' => false,
]);
评论
非常感谢!但是我想问一个问题,为什么要在变量内创建一个数组而不是在显示第一个数组的上方声明它呢?
– David H
2014年4月4日14:48
简单。如果参数数组更复杂,我会首先(最有可能)声明它,但是对于单个参数来说,这是最简单的方法。无论哪种方式,它都应同样有效地工作。
– s_ha_dum
2014年4月4日14:53
非常感谢:)那让我很感动。我真的很感激!
– David H
2014年4月4日15:17
作品!!现在,我可以看到所有分类法选项的内容!一些插件在其中创建复杂的结构。
–eyal_katz
18年6月22日在16:41
#2 楼
从4.5.0开始,分类法应通过$ args数组中的'taxonomy'参数传递,这样:$terms = get_terms( array(
'taxonomy' => 'post_tag',
'hide_empty' => false,
) );
其中默认无帖子的术语被隐藏。
#3 楼
此代码使用get_terms()
获取所有类别和子类别的自定义分类法:<?php $wcatTerms = get_terms('product_cat', array('hide_empty' => 0, 'parent' =>0));
foreach($wcatTerms as $wcatTerm) :
?>
<ul>
<li>
<a href="<?php echo get_term_link( $wcatTerm->slug, $wcatTerm->taxonomy ); ?>"><?php echo $wcatTerm->name; ?></a>
<ul class="megaSubCat">
<?php
$wsubargs = array(
'hierarchical' => 1,
'show_option_none' => '',
'hide_empty' => 0,
'parent' => $wcatTerm->term_id,
'taxonomy' => 'product_cat'
);
$wsubcats = get_categories($wsubargs);
foreach ($wsubcats as $wsc):
?>
<li><a href="<?php echo get_term_link( $wsc->slug, $wsc->taxonomy );?>"><?php echo $wsc->name;?></a></li>
<?php
endforeach;
?>
</ul>
</li>
</ul>
<?php
endforeach;
?>
评论
在什么时候失败?它有多少以您想要的方式工作?它起作用的问题是我只能以自定义帖子类型显示SELECTED术语。我希望所有人都显示是否选择了,我不想有一个虚拟的帖子类型只选择了要显示的所有内容。