我有一个WP_Query
来拉和显示一个由全局属性过滤的WooCommerce产品变体列表。这是可行的,但我想通过'menu_order'自定义排序结果。
但这对'post_type' => 'product_variation'
不起作用。可能是因为'menu_order'是在产品级别上设置的。('post_type' => 'product'
确实起作用,但我需要变体)
$wc_query_params = array(
'post_type' => 'product_variation',
'posts_per_page' => -1,
'numberposts' => -1,
'post_status' => 'publish',
'meta_query' => array(array(
//filter variations on attribute name
'key' => 'attribute_pa_color',
'value' => 'blue',
)),
'order' => 'ASC',
'orderby' => 'menu_order',
);
$wc_query = new WP_Query($wc_query_params);
if ($wc_query->have_posts()) :
while ($wc_query->have_posts()) :
$wc_query->the_post();
//results
endwhile;
wp_reset_postdata();
endif;
是否有一种方法可以根据父产品'menu_order'对产品变体进行排序?或者是否有其他方法可以对产品变体进行自定义排序?
1条答案
按热度按时间e0bqpujr1#
使用the answer from this question,我设法在与父变量产品相同的
menu_order
中显示产品变量。在下面的函数中,我添加了
ORDER by p.menu_order
,以便按照menu_order
对变体父id进行排序。我使用这个排序顺序按父产品对product_variations进行排序。使用
'orderby' => 'post_parent__in'
使用post_parent__in
中给出的相同顺序。也许对其他人有用。