我正在构建一个查询来获取孩子的子类别。例如:我有一个名为“animal”的父类别,还有“food”和“sport”等其他类别。我想得到动物的分类。
我愿意:
$parent_cat = get_cat_ID( $cat_name );
$args = array(
\'type\' => \'post\',
\'parent\' => $parent_cat,
\'order\' => \'DESC\'
);
$categories = (array) get_categories( $args );
没问题,用foreach我得到了我的动物的子类别。
在我的子类别中,我也有类别(这是一个3级层次结构)。
我也这样做:
$child_cat = get_cat_ID( $sub_cat_name );
$args = array(
\'type\' => \'post\',
\'parent\' => $child_cat,
\'order\' => \'DESC\'
);
$sub_categories = (array) get_categories( $args );
还有。。。它返回其他家长类别“食物”和“运动”。
为什么会这样?我错在哪里?
最合适的回答,由SO网友:Neovea 整理而成
好吧,我实际上是用错误的方法得到子类别。
在里面$parent_cat = get_cat_ID( $cat_name );
$cat_name
不是一个名字,而是一个非鼻涕虫。第一个错误。
所以我纠正了$parent_cat = get_category_by_slug( $cat_slug );
最终代码为:
// Get the parent cat thanks to the page\'s cat slug
$parent_cat = get_category_by_slug( $cat[1] );
$args = array(
\'type\' => \'post\',
\'parent\' => $parent_cat->term_id,
\'order\' => \'DESC\'
);
// child cats
$categories = get_categories( $args );
// loop on the child cats to get the sub cats object
foreach ($categories as $key => $value) {
return $value;
}
就是这样。