订购自定义分类层次结构
Order custom taxonomy hierarchy
我有一些区域的自定义分类法。
通常看起来像这样。
USA (parent)
- Arizona (child 1)
- - Phoenix (child 2)
但是也有只会像
的情况
USA
- Arizona
或
UK
- Wales
甚至可能只是
Japan
在我的 for 循环中,我得到的分类数据为 $location = get_the_terms( $id, 'listings_region' );
然后在 html/php 中我可以简单地写 $location[0]->name
然后我得到数组中第一个对象的名称。
但是我注意到分类法没有按正确的层次结构返回,而是按字母顺序排列。
当我 echo '<pre>'; print_r($location); echo '</pre>'
时,我得到数组,[0] 是亚利桑那州,[1] 是美国。
如何以正确的顺序检索分类法数组,以便理想情况下 [0] 始终是父项,[1] 是第一个子项,等等?
提前致谢。
成功了,
$location = wp_get_post_terms($id, 'listings_region', array('orderby'=> 'parent'));
我基本明白你想显示所有的类别和相应的子类别。您可以通过以下代码执行此操作:
$terms = get_the_terms($id, 'listings_region');
foreach($terms as $key => $term){
if($term->parent != 0){
$terms[$term->parent]->children[] = $term;
unset($terms[$key]);
}
}
自己未经测试,因此您需要打印一次才能按自己的方式使用,但需要更改访问类别及其子类别的方法。
我有一些区域的自定义分类法。
通常看起来像这样。
USA (parent)
- Arizona (child 1)
- - Phoenix (child 2)
但是也有只会像
的情况USA
- Arizona
或
UK
- Wales
甚至可能只是
Japan
在我的 for 循环中,我得到的分类数据为 $location = get_the_terms( $id, 'listings_region' );
然后在 html/php 中我可以简单地写 $location[0]->name
然后我得到数组中第一个对象的名称。
但是我注意到分类法没有按正确的层次结构返回,而是按字母顺序排列。
当我 echo '<pre>'; print_r($location); echo '</pre>'
时,我得到数组,[0] 是亚利桑那州,[1] 是美国。
如何以正确的顺序检索分类法数组,以便理想情况下 [0] 始终是父项,[1] 是第一个子项,等等?
提前致谢。
成功了,
$location = wp_get_post_terms($id, 'listings_region', array('orderby'=> 'parent'));
我基本明白你想显示所有的类别和相应的子类别。您可以通过以下代码执行此操作:
$terms = get_the_terms($id, 'listings_region');
foreach($terms as $key => $term){
if($term->parent != 0){
$terms[$term->parent]->children[] = $term;
unset($terms[$key]);
}
}
自己未经测试,因此您需要打印一次才能按自己的方式使用,但需要更改访问类别及其子类别的方法。