【发布时间】:2017-12-06 10:46:28
【问题描述】:
我正在使用以下代码选择具有以下 post_meta 键的产品:_product_new、_product_almost_new 和 _product_old。
我的代码:
add_action( 'woocommerce_product_query', 'custom_vtp_shop_order' );
function custom_vtp_shop_order($q){
if ( ! $q->is_main_query() ) return;
if (! is_admin() && (is_shop() || is_archive) ) {
$q->set( 'tax_query', array(array(
'taxonomy' => 'product_cat',
'field' => 'slug',
'terms' => array( 'Sold', 'Service' ),
'operator' => 'NOT IN'
)));
$q->set('meta_query', array(array(
'relation' => 'OR',
'product_new' => array(
'key' => '_product_new',
'value' => '1',
),
'product_almost_new' => array(
'key' => '_product_almost_new',
'value' => '1',
),
'product_old' => array(
'key' => '_product_old',
'value' => '1',
)
)));
/*THIS HAS NO EFFECT*/
$q->set('orderby', array(array(
'product_new' => 'DESC',
'product_old' => 'DESC',
'product_almost_new' => 'DESC',
)
));
}
}
我希望产品按以下顺序显示:
- product_new
- product_old
- product_almost_new
我正在使用 $q->set('orderby', array(......) 但这没有任何效果。我的产品总是被订购product_old、product_almost_new、product_new。
任何想法为什么我的“orderby”不起作用?任何帮助表示赞赏。
【问题讨论】:
标签: php mysql wordpress woocommerce