按用户定义的顺序显示woo商务类别列表

时间:2017-10-31 08:37:02

标签: wordpress woocommerce

我想按用户定义的顺序显示所有woo商务类别。举个例子 。我尝试了以下代码:

            $args = array(
                'number' => $product_number,
                'order' => 'asc',

            );

            $product_categories = get_terms('product_cat', $args);

此代码工作正常,并按升序返回数组或所有类别名称。我现在想要的是允许用户通过提供的id顺序传递类别ID数组和显示类别列表。那可能吗 ?做了一些研究却找不到任何贴切的解决方案。

2 个答案:

答案 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的自定义顺序。