在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 );
我尝试了几种不同的orderby变体,但无法获得与管理界面完全相同的顺序。订购数据似乎存储在?? __ woocommerce_termmeta表中,并带有' meta_key' ' order'。
任何建议都将不胜感激。
感谢。
答案 0 :(得分:4)
在product_cat
分类法的情况下,似乎WooCommerce已经在更改查询。例如:
$args = array(
'parent' => 0,
'taxonomy' => 'product_cat'
);
$categories = get_categories( $args );
执行的查询将如下所示:
SELECT 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') 在哪里tt.taxonomy IN('product_cat')和tt.parent ='0'ORDER BY tm.meta_value + 0 ASC,t.name ASC
类别的采用顺序与管理部分相同。