我有子类别的ID,11,14,21,35,38,39
, 其中,这些都是其主要类别中的各种子类别:
父类别1
具有:11,14
2 具有:21
3 具有:35,38,39
我如何按照孩子的父类别对孩子ID进行分组,如下所示?
array(
1 => array ( 11,14 ),
2 => array ( 21 ),
3 => array ( 35,38,39 )
)
我有子类别的ID,11,14,21,35,38,39
, 其中,这些都是其主要类别中的各种子类别:
父类别1
具有:11,14
2 具有:21
3 具有:35,38,39
我如何按照孩子的父类别对孩子ID进行分组,如下所示?
array(
1 => array ( 11,14 ),
2 => array ( 21 ),
3 => array ( 35,38,39 )
)
快速拍摄如下:
$categories = [ ];
$parent_categories = get_categories( [ \'parent\' => 0 ] );
foreach ( $parent_categories as $parent_category ) {
$id = $parent_category->term_id;
$categories[ $id ] = wp_list_pluck( get_categories( [ \'parent\' => $id ] ), \'term_id\' );
}
重要的一点是parent
参数,该参数限制检索到的直接子级(0的父级是顶级)。根据这些结果的多少,最好先检索所有这些结果,然后从单个结果集中重新排列。
我和你有完全相同的要求。下面的代码是我的解决方案:
$termArr = array();
$termIds = array_filter(explode(\',\',\'11,14,21,35,38,39\'),\'is_numeric\');
if( !empty($termIds) ){
$terms = get_terms(array(
\'taxonomy\' => \'my_taxonomy\',
\'include\' => $termIds
));
foreach($terms as $t){
if( !isset($termArr[$t->parent]) )
$termArr[$t->parent] = array();
$termArr[$t->parent][] = $t->term_id;
}
print_r($termArr); //===> This is the array which you need :)
}
我的自定义帖子类型中有3篇帖子(\'careers\'). 我注册了自定义分类法(\'career_categories\').我创建了3个职位,其中两个职位属于“全职”,一个职位属于“兼职”。我在循环中使用以下代码:$terms = get_terms( \'career_categories\', array( \'hide_empty\' => true, ) ); $html_out .= \'<td class=\"column-\'. $col++ .\'\"&g