我在这个论坛上搜索了可能的解决方案,但我没有得到任何有效的方法。也许我做错了。
这是我到目前为止尝试过的代码
$parent_categories = '' ;
$sub_categories = '';
$subcat = '';
$number = '';
$name = 'name';
$order = 'ASC';
$hide_empty=1;
$ids ='';
$args = array(
'number' => $number,
'orderby' => $orderby,
'order' => $order,
'hide_empty' => $hide_empty,
'include' => $ids,
'hierarchical'=> true,
'parent' => 0
);
$product_categories = get_terms( 'product_cat', $args );
foreach ($product_categories as $cat) {
//var_dump($cat); echo '<br>';
if($ cat-&gt; slug =='essays'){
$args2 = array(
'number' => $number,
'orderby' => $orderby,
'order' => $order,
'hide_empty' => $hide_empty,
'include' => $ids,
'parent' => $cat->term_id,
'hierarchical'=> true,
);
$sub_categories = get_terms( 'product_cat', $args2 );
foreach ($sub_categories as $subcat) {
$sub_categories = $sub_categories.$subcat->name.',';
}
$sub_categories = rtrim($sub_categories);
}
else
$sub_categories= 'nomatch';
}
当我做echo $sub_categories
。
我得到输出no match
;
调试结果
我尝试删除if else条件以查看哪些有效,哪些无效。
$parent_categories = '' ;
$sub_categories = '';
$subcat = '';
$args = array(
'number' => $number,
'orderby' => $orderby,
'order' => $order,
'hide_empty' => $hide_empty,
'include' => $ids,
'hierarchical'=> true,
'parent' => 0
);
$product_categories = get_terms( 'product_cat', $args );
foreach ($product_categories as $cat) {
//var_dump($cat); echo '<br>';
$args2 = array(
'number' => $number,
'orderby' => $orderby,
'order' => $order,
'hide_empty' => $hide_empty,
'include' => $ids,
'parent' => $cat->term_id,
'hierarchical'=> true,
);
$sub_categories = get_terms( 'product_cat', $args2 );
foreach ($sub_categories as $subcat) {
$sub_categories = $sub_categories.$subcat->name.',';
}
$sub_categories = rtrim($sub_categories);
代码会检索所有顶级类别的父类别和所有子类别。虽然我想要特定父类别的子类别。我尝试了parent=>$cat->term_id
和$cat->term_taxonomy_id
。结果仍然相同。我试过硬编码父的term_id但没用。
好的,我的首要任务是获取特定类别的子类别!
我的第二个问题是为什么if条件(用橙色标记)不能正常工作?
请让我知道我必须在这里进行哪些修改!