Zeigen Sie die neuesten Produkte zuerst, aber “ausverkauft” zuletzt in Abfrage

Ich verwende WooCommerce und möchte die “vergriffenen” Produkte zuletzt in der Abfrage auf der Archivseite anzeigen. Wie kann ich das machen?

Momentan machen wir die neueste Produktshow mit der folgenden benutzerdefinierten Abfrage:

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' ); } } 

Also würden wir beide gerne machen. Zeige die neuesten Produkte zuerst, aber zeige “out of stock” Produkte an, egal wie neu sie sind.

Mit freundlichen Grüßen, Mika

Solutions Collecting From Web of "Zeigen Sie die neuesten Produkte zuerst, aber “ausverkauft” zuletzt in Abfrage"

Wenn wir nur zwei Bestandsstatus haben, nämlich outofstock und instock , können wir sehr leicht eine Sortierung mit 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 ); 

Sie sollten das an Ihre Bedürfnisse anpassen