Wie ändere ich die Parameter der Produktschleife auf der Woocommerce-Archivseite?

Lesezeit: 1 Minute

Nun, ich versuche, einige benutzerdefinierte Schleifenseiten für Woocommerce-Produkte zu erstellen, und ich habe herausgefunden, dass der Prozess in der Datei archive-product.php beginnt und dann Vorlagenausschnitte zum Zeichnen der Seite enthält.

Aber ich möchte die abzufragenden Parameter ändern, damit sie einigen Produktkategorien beitreten oder einige Produkte oder einige Kategorien aus der Schleife ausschließen (genau wie wir es in category.php in einem WordPress-Projekt tun).

Wie mache ich es?! Wo finde ich diesen Teil des Skripts?

Vielen Dank!

Woocommerce setzt einfach auf WordPress Global $wp_querykönnen Sie verwenden pre_get_posts Aktionshaken zum Ändern einer Abfrage,

z.B

function _additional_woo_query( $query ) {
    if ( is_product_category() ) {
        $query->set( 'cat', '123' );
    }
}
add_action( 'pre_get_posts', '_additional_woo_query' );

woocommerce auschecken bedingtes Tag

  • Wenn Sie dies in ‘pre_get_posts’ hinzufügen, werden alle globalen Abfragen für andere Dinge wie die Navigation und andere Schleifen durcheinander gebracht

    – Kriegsgesicht

    25. Mai 2020 um 15:29 Uhr

  • Aus diesem Grund benötigen Sie eine Bedingung dafür, wo sie eingefügt werden soll, und ändern nur die gewünschte Abfrage

    – Silber

    26. Mai 2020 um 13:39 Uhr

Benutzer-Avatar
Pranay Srivastava

Versuchen Sie den folgenden Code.
Fügen Sie es in die functions.php Ihres Themes ein.
Ersetzen Sie $product_category_id durch Ihren Wert.

function _new_updated_query( $query ) {
if ( is_product_category() && $query->is_main_query() ) {
    $query->set( 'tax_query', array (
        array(
          'taxonomy' => 'product_cat',
          'field'    => 'term_id',
          'terms'    => absint($product_category_id),
        )
    ));
}
}
add_action( 'pre_get_posts', '_new_updated_query' );

1372250cookie-checkWie ändere ich die Parameter der Produktschleife auf der Woocommerce-Archivseite?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy