我正在使用WooCommerce,希望在存档页面上显示查询中最后一个“缺货”的产品。我该怎么做?
目前,我们正在通过以下自定义查询首先进行最新产品展示:
add_action( \'pre_get_posts\', \'mik_exclude_category\' );
function mik_exclude_category( $query ) {
if ( $query->is_main_query() ) {
$query->set( \'orderby\', \'date\' );
$query->set( \'order\', \'DESC\' );
}
}
所以,我们想两者兼而有之。首先展示最新的产品,但无论“缺货”产品有多新,最后都要展示。
真的,米卡
最合适的回答,由SO网友:Pieter Goosen 整理而成
如果我们只有两种库存状态,即outofstock
和instock
, 我们可以很容易地通过pre_get_posts
add_action( \'pre_get_posts\', function ( $q ) {
if ( !is_admin() // Target only front end
&& $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 );
你应该根据自己的需要进行调整