私は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' );
}
}
だから、私たちは両方をやりたいのです。最新の商品を最初に表示しますが、新しい商品に関係なく「在庫切れ」の商品を表示します。
心から、ミカ
outofstock
とinstock
の2つの在庫ステータスしかない場合、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 );
あなたはそれをあなたのニーズに合わせるべきです