StackOverflow中有很多答案,但是旧的答案对我来说,都没有使用最新版本的Woocommerce。
我的页面已经按照最新商品进行排序,但是我想将所有售罄的商品移到最后一页。
我尝试过的最后一个代码:
1:
add_action( 'pre_get_posts', function ( $q ) {
if ( $q->is_main_query() // Only target the main query
&& $q->is_post_type_archive() // Change to suite your needs
) {
$q->set( 'meta_key', '_stock_status' );
$q->set( 'orderby', 'meta_value' );
$q->set( 'order', 'ASC' );
}
}, PHP_INT_MAX );
2:
add_filter( 'woocommerce_shortcode_products_query', function( $query_args, $atts, $loop_name ){
if( $loop_name == 'recent_products' ){
$query_args['meta_query'] = array( array(
'key' => '_stock_status',
'value' => 'outofstock',
'compare' => 'NOT LIKE',
) );
}
return $query_args;
}, 10, 3);