Woocomerce-Shop-Seite, um den Kategorienamen anzuzeigen und Produkte innerhalb dieser Kategorie anzuzeigen

Lesezeit: 3 Minuten

Ich entwickle eine Website mit installiertem Woocommerce-Plugin. Ich möchte, dass meine Shop-Seite zuerst den Kategorienamen und dann die Produkte innerhalb dieser Kategorie anzeigt, dann den nächsten Kategorienamen mit den Produkten, die es hat.
Bildschirmfoto

habe schon in google & hier gesucht, eine lösung gefunden, aber es ist nicht das, was ich will. Es fügte den Kategorienamen nach dem Preisbereich jedes Produkts hinzu. Ich bin kein Profi, daher fällt es mir schwer, dieses Problem zu lösen.

function wc_category_title_archive_products(){

    $product_cats = wp_get_post_terms( get_the_ID(), 'product_cat' );

    if ( $product_cats && ! is_wp_error ( $product_cats ) ){

        $single_cat = array_shift( $product_cats ); ?>

        <small class="product_category_title"><?php echo $single_cat->name; ?></small>

<?php }
}
add_action( 'woocommerce_after_shop_loop_item', 'wc_category_title_archive_products', 5 );

Benutzer-Avatar
Prof

<?php    
    $cat_args = array(
        'parent' => '0',
        'taxonomy' => 'product_cat'
    );
    $categories = get_categories( $cat_args );

    foreach ($categories as $category) { 
        echo $category->cat_name;
        echo do_shortcode('[product_category category="'.$category->cat_name.'" per_page="12" columns="4" orderby="date" order="DESC"]'); 
    }
?> 

  • fügen Sie diesen Code zu /your-child-theme/woocommerce/templates/archive-product.php hinzu

    – Prof

    10. August 2016 um 22:22 Uhr

  • Ich kann bestätigen, dass das funktioniert. Dies sollte also als Antwort markiert werden. Danke @proff.

    – Duschan

    24. September 2020 um 11:20 Uhr

  • Eigentlich sollte der korrekte Pfad /your-child-theme/woocommerce/archive-product.php sein. Bitte beachten Sie, dass ich das Verzeichnis “template” weggelassen habe. Für weitere Informationen lesen Sie dies. docs.woocommerce.com/document/template-structure

    – Duschan

    24. September 2020 um 16:44 Uhr

  • Wenn Sie interessant sind, lesen Sie dies auch docs.woocommerce.com/document/conditional-tags

    – Duschan

    24. September 2020 um 16:50 Uhr

NAME DER PRODUKTKATEGORIE ÜBER DEM TITEL IN DER SHOP-SEITE ANZEIGEN ==> Überprüfen Sie die Woocomerce-Version 3.5.3. Sie müssen sie einfach kopieren und in Ihre Theme-Funktionen.php einfügen

function wpa89819_wc_single_product(){

    $product_cats = wp_get_post_terms( get_the_ID(), 'product_cat' );

    if ( $product_cats && ! is_wp_error ( $product_cats ) ){

        $single_cat = array_shift( $product_cats ); ?>

        <h2 itemprop="name" class="product_category_title"><span><?php echo $single_cat->name; ?></span></h2>

<?php }
}
add_action( 'woocommerce_after_shop_loop_item_title', 'wpa89819_wc_single_product', 5 );

Benutzer-Avatar
rnevius

Sie müssen für jede Kategorie eine neue Schleife/Abfrage durchführen. Wir können einen Teil des Prozesses automatisieren, indem wir WordPress verwenden get_categories Funktion. Hier ist ein Beispiel::

<?php    
    $cat_args = array(
        'parent' => '0',
        'taxonomy' => 'product_cat'
    );
    $categories = get_categories( $cat_args );

    foreach ($categories as $category) { ?>      
        <ul class="product-category">
            <?php
                $args = array( 'post_type' => 'product', 'posts_per_page' => 1, 'cat' => $category->cat_ID, 'orderby' => 'rand' );
                $loop = new WP_Query( $args );
                while ( $loop->have_posts() ) : $loop->the_post(); global $product; ?>

                    <!-- Your output -->

            <?php endwhile; ?>
            <?php wp_reset_query(); ?>
        </ul>
    }
?> 

  • aber es ist nicht flexibel, ich muss meine Vorlage jedes Mal ändern, wenn ich eine neue Kategorie hinzufüge.

    – Aohor Arsalan

    23. September 2014 um 7:40 Uhr

  • Sie können immer alle Kategorien mit dem abrufen get_categories Funktion. Danach könntest du a foreach Schleife sie alle durch. Das wäre flexibel. Wenn Sie nicht verstehen, werde ich meine Antwort aktualisieren.

    – rnevius

    23. September 2014 um 8:16 Uhr


  • ja bitte aktualisieren. Ich bin nicht sehr gut mit PHP. danke für all deine harte arbeit.

    – Aohor Arsalan

    23. September 2014 um 8:43 Uhr

  • Ich habe meine Antwort aktualisiert, wie Sie es angehen möchten. Es wäre unproduktiv, die gesamte Ausgabe hier zu posten. Sie müssen den Abschnitt “Ihre Ausgabe” ausfüllen. Ich hoffe das hilft.

    – rnevius

    23. September 2014 um 9:15 Uhr

1016440cookie-checkWoocomerce-Shop-Seite, um den Kategorienamen anzuzeigen und Produkte innerhalb dieser Kategorie anzuzeigen

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

Privacy policy