我不完全确定你是否真的需要get_terms()
两次这看起来很不得力,太过分了。我不知道您是否需要这个来订购,但仍然有更好的方法可以做到这一点,而不会对db造成太大影响。另一种选择是打一个电话给get_terms()
然后使用usort()
按家长对术语进行排序。但这超出了你的问题范围。
有几种方法可以排除父术语
只需使用exclude
中的参数get_terms()
排除父类别。如果您的父母的id为1和2,那么您可以添加\'exclude\' => [1, 2],
你的论点get_terms()
· (注意,新的短数组语法仅在PHP 5.4中可用。对于旧版本,请使用\'exclude\' => array( 1, 2 ),
)
您也可以在父对象上循环。如果您的父母是顶级术语,那么他们的父母id将是0
, 因此,您只需在foreach
环
if ( $prod_cat->parent == 0 )
continue;
或者,您可以使用它们各自的ID跳过它们
if ( $prod_cat->term_id == 1 || $prod_cat->term_id == 2 )
continue;