2017-08-30 69 views
1

我在Woocommerce中有產品的自定義頁面模板,但是我想按屬性的術語名稱asc訂購產品。我有三個術語。我不知道這樣做的正確的方式,我已經試過這樣:按屬性名稱升序的Woocommerce訂單產品

<?php 
args = array(
    'post_type' => 'product', 
    'posts_per_page' => 20, 
    'meta_key' => 'pa_tire-type', 
    'orderby' => 'meta_value_num', 
    'order' => 'asc' 
); 
$loop = new WP_Query($args); 
while ($loop->have_posts()) : $loop->the_post(); 
global $product; ?> 

回答

0

- 更新 -

您需要添加一個tax_query爲您的產品屬性與相關術語(蛞蝓)用這種方式:

// Set HERE the attibute taxonomy slug 
$taxonomy = 'pa_tire-type'; 

// Set HERE the term slugs for this attribute 
$terms_array = array('term_slug1', 'term_slug2', 'term_slug3'); 

// The loop query 
$loop = new WP_Query(array(
    'post_type'  => 'product', 
    'posts_per_page' => 20, 
    'post_status' => 'publish', 
    'tax_query'  => array(array(
      'taxonomy' => $taxonomy, 
      'field'  => 'slug', 
      'terms'  => $terms_array, 
      'operator' => 'IN', 
    )), 
    'order_by'  => 'terms', 
    'order'   => 'asc' 
)); 

$product_ids = array(); 

if ($loop->have_posts()): while ($loop->have_posts()) : $loop->the_post(); 
$product_ids[] = $loop->post->ID; 
endwhile; 

wp_reset_postdata(); 
endif; 

// Testing output 
print_pr($product_ids); 

此代碼已經過測試和工作。

+0

嗨,你能看到整個頁面的代碼? – alexanderstanchev