我想按用户定义的顺序显示所有woo商务类别。举个例子 。我尝试了以下代码:
$args = array(
'number' => $product_number,
'order' => 'asc',
);
$product_categories = get_terms('product_cat', $args);
此代码工作正常,并按升序返回数组或所有类别名称。我现在想要的是允许用户通过提供的id顺序传递类别ID数组和显示类别列表。那可能吗 ?做了一些研究却找不到任何贴切的解决方案。
答案 0 :(得分:1)
$product_number = 10; // Any number you have defined
$catsArray = array(1,2,3,4,5,8,10,20); // User provided array of terms ids
$product_categories= get_terms( array(
'number' => $product_number,
'taxonomy' => 'product_cat',
'include' => $catsArray,
'hide_empty' => false,
'orderby' => 'include',
'order' =>'ASC'
) );
现在您可以在
中获取类别答案 1 :(得分:0)
你可以用php循环来完成它。它采用默认的有序术语数组并在其上构建新的自定义有序数组。
$user_arg = array(1,2,4,5);
$product_categories = get_terms('product_cat', $args);
$temporary_array=array();
foreach ($product_categorie as $pcat) {
$temporary_array[$pcat->term_id]=$pcat;
}
$final_array=array();
foreach($user_arg as $ua){
$final_array[$ua]=$temporary_array[$ua];
}
现在$ final_array包含与$ product_categories相同的数据,但是基于$ user_arg的自定义顺序。