Ich muss eine Produktarchivseite erstellen (normalerweise die Seite Shop in WooCommerce ), aber NUR die ON SALE Produkte . Grundsätzlich sollte das gleiche Template-Layout wie in archive-product.php
verwendet werden. Es wird einen Link im Hauptmenü geben, der zu dieser Seite führt. Wie gehe ich hier vor?
Ich habe es geschafft, die ON SALE Produkte herauszufiltern, wobei der Code unterhalb der Zeile if ( have_posts() ) :
... platziert wurde.
Der Code befindet sich in einer Kopie von archive-product.php
, die ich archive-product_sale.php
genannt und als Seitenvorlage erstellt habe.
Dies funktioniert jedoch nur für Einfache Produkte und ich muss es sowohl für Einfache Produkte als auch für Variable Produkte verwenden. p>
Ich habe es geschafft, die ON SALE Produkte herauszufiltern, mit dem Code direkt über der if ( have_posts() ) :
-Zeile ...
Der Code befindet sich in einer Kopie von archive-product.php
, die ich in archive-product_sale.php
umbenannt und als Seitenvorlage erstellt habe.
@mirus 'Antwort bezüglich des Shortcodes gab mir die Idee herauszufinden, wie WooCommerce nur die On-Sale-Artikel abfragt. Anscheinend hat WooCommerce eine wc_get_product_ids_on_sale()
-Funktion, die die IDs der verkauften Artikel zurückgibt. Dann können wir die Abfrage einfach mit dem Parameter post__in
anpassen, um nur diese spezifischen Elemente zurückzugeben.
WooCommerce hat einen woocommerce_product_query
-Hook in der class-wc-query.php
-Klasse, der es uns ermöglicht, die Abfrage zu ändern, bevor sie ausgeführt wird .... sie wird auf pre_get_posts
ausgeführt, was der übliche Platz zum Ändern der Abfrage ist. Wenn Sie Woo's Hook verwenden, bedeutet das, dass Sie die Mehrheit der bedingten Logik behandeln, wenn diese Abfrage geändert werden soll.
@gmaggio mit query_posts () wird Ihre Website brechen . Verwenden Sie pre_get_posts
%Vor%Tags und Links wordpress archive woocommerce products shop