Woocommerce 订单类别(按管理部分的类别订单)

Mar*_*tin 2 wordpress woocommerce

在 woocommerce 类别屏幕中,您可以拖放类别以更改其顺序。

在“前端”中,我想以相同的顺序列出类别(与 wp-admin 中的产品类别屏幕的拖放相同的自定义顺序)。

$args = array(
  'taxonomy'     => 'product_cat',
  'orderby'      => 'term_order',
  'order'        => 'asc',
  'show_count'   => 0,
  'pad_counts'   => 0,
  'hierarchical' => 1,
  'title_li'     => '',
  'hide_empty'   => 0,
);

$query = new WP_Query( $args );
Run Code Online (Sandbox Code Playgroud)

我尝试了几种不同的 orderby 变体,但无法获得与管理屏幕完全相同的订单。订购数据似乎存储在 __woocommerce_termmeta 表中,其中“meta_key”为“order”。

任何建议将不胜感激。

谢谢。

Dan*_*jel 5

看来 WooCommerce 已经在更改product_cat分类法的查询。例如:

$args = array(
    'parent'        => 0,
    'taxonomy'      => 'product_cat'
);

$categories = get_categories( $args );
Run Code Online (Sandbox Code Playgroud)

执行的查询将如下所示:

选择t。,TT。, tm.* FROM wp_terms AS t INNER JOIN wp_term_taxonomy AS tt ON t.term_id = tt.term_id LEFT JOIN wp_woocommerce_termmeta AS tm ON (t.term_id = tm.woocommerce_term_id AND tm.meta_key = 'order') WHERE tt.taxonomy IN ( 'product_cat') AND tt.parent = '0' 按 tm.meta_value+0 ASC、t.name ASC 排序

类别的排列顺序与管理部分中的顺序相同。