Woocommerce benutzerdefinierte Schleife, um alle Produkte anzuzeigen
-
-
Hey,hast dujemalseine Antwort daraufgefunden?Wennja,bitte teilen.Das wird sehrgeschätzt.Vielen Dank.Hey, did you ever find an answer for this? If yes, please share. That will be highly appreciated. Thanks.
- 0
- 2013-06-14
- Devner
-
Hieristein besserer Beitrag zum Kopieren von :) https://cfxdesign.com/create-a-custom-woocommerce-product-loop-the-right-way/Here's a better post to copy from :) https://cfxdesign.com/create-a-custom-woocommerce-product-loop-the-right-way/
- 0
- 2018-05-24
- cfx
-
2 Antworten
- Stimmen
-
- 2013-06-14
Ich habemein Problemnicht vollständiggelöst. Mein Kunde hat seine Meinunggeändert und wollte die Sortierungnichtmehr.
Aber was das Pagingbetrifft,habeichesgeschafft,es durch Hinzufügeneinesneuen Argumentsin meiner Abfrage zum Laufen zubringen. Hierist der Code,mit demesfürmichfunktioniert hat:
<?php $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; $args = array( 'post_type' => 'product', 'paged' => $paged, ); $wp_query = new WP_Query($args); if (isset($_GET['all'])) { ?> <?php do_action('woocommerce_archive_description'); ?> <?php if (have_posts()) : ?> <?php // I don't want the sorting anymore //do_action('woocommerce_before_shop_loop'); ?> <ul class = "products-list"> <?php while (have_posts()) : the_post(); ?> <?php woocommerce_get_template_part('content', 'product'); ?> <?php endwhile; // end of the loop. ?> </ul> <?php /* woocommerce pagination */ do_action('woocommerce_after_shop_loop'); ?> <?php elseif (!woocommerce_product_subcategories(array('before' => woocommerce_product_loop_start(false), 'after' => woocommerce_product_loop_end(false)))) : ?> <?php woocommerce_get_template('loop/no-products-found.php'); ?> <?php endif; ?> <?php } else { // Code to display the product categories with thumbnails. } ?>
Mit der Variablen
$paged
kannich die aktuelle Seite über GETin der URL übergeben.Nocheinmal,ich weißnicht,obes derbeste Wegist,dies zutun. Aberes hat den Jobfürmichgemacht.
Ich hoffe,es kannjemandem helfen.
I didn't entirely resolved my problem. My client changed his mind and didn't want the sorting anymore.
But concerning the paging, I managed to have it working by adding a new arg in my query, here is the code that made it worked for me :
<?php $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; $args = array( 'post_type' => 'product', 'paged' => $paged, ); $wp_query = new WP_Query($args); if (isset($_GET['all'])) { ?> <?php do_action('woocommerce_archive_description'); ?> <?php if (have_posts()) : ?> <?php // I don't want the sorting anymore //do_action('woocommerce_before_shop_loop'); ?> <ul class = "products-list"> <?php while (have_posts()) : the_post(); ?> <?php woocommerce_get_template_part('content', 'product'); ?> <?php endwhile; // end of the loop. ?> </ul> <?php /* woocommerce pagination */ do_action('woocommerce_after_shop_loop'); ?> <?php elseif (!woocommerce_product_subcategories(array('before' => woocommerce_product_loop_start(false), 'after' => woocommerce_product_loop_end(false)))) : ?> <?php woocommerce_get_template('loop/no-products-found.php'); ?> <?php endif; ?> <?php } else { // Code to display the product categories with thumbnails. } ?>
The
$paged
variable helps me to get the current page passed in the URL via GET.Once again, I dunno if it is the best way to do it. But it did the job for me.
I hope it can help someone.
-
`woocommerce_get_template_part`ist seit Version 3.0 veraltet ... verwenden Sie stattdessen` wc_get_template_part` ... Sie können aucheine if-Anweisung verwenden,damit Ihr Code sowohl ältere als auchneuere Versionen von woocommerce unterstützt`woocommerce_get_template_part` is deprecated since version 3.0 ... use `wc_get_template_part` instead ... You can as well use a if statement to make your code support both older and newer version of woocommerce
- 0
- 2019-12-10
- Kolawole Emmanuel Izzy
-
- 2014-09-16
In Ihrem $ args-Array sollten Siein der Lage sein,
'posts_per_page' => -1
,um alle Produkte anzuzeigen.Das Ergebnis würdefolgendermaßen aussehen:$args = array( 'post_type' => 'product', 'paged' => $paged, 'posts_per_page' => -1 );
In your $args array, you should be able to add
'posts_per_page' => -1
to show all products. The result would look like this:$args = array( 'post_type' => 'product', 'paged' => $paged, 'posts_per_page' => -1 );
Ich arbeite derzeit aneiner E-Commerce-Website undbin aufein Problemgestoßen. Mein Kundemöchteeine Seite E-Boutiquemit allen angezeigten Produktkategorien,gefolgt von dreibeworbenen Produkten undeiner Schaltfläche "Alle anzeigen".
Diese Schaltfläche "Alle anzeigen" soll alle Produkte anzeigen,die das Geschäftmit der Standard-Sortierung und dem Paging von Woocommerceenthält.
Zunächsteinmal weißichnicht,obiches richtigmache. Wasichbisher habe,ist die Seitemit den Produktkategorien. Wennich auf dieser Seite auf die Schaltfläche "Alle anzeigen" klicke,ladeich die Seitemit einem
GET
-Argument/? All=1 und lassen Sie das Produkt anzeigen.
Ich habe die Idee aus diesem Beitrag kopiert und hieristmein Code:
Die Produkte werdengut angezeigt und die Auswahlfür die Sortierungist sichtbar. Wennich die Sortierung ändernmöchte,wird die Seiteneugeladen,aber die Reihenfolge wirdnichtgeändert und das Paging wird auf 3 Produktepro Seiteeingestellt,aberes wirdnichtbeachtet. (Die Paging-Schaltflächen werdennicht angezeigt.)
Ichmöchte hinzufügen,dassesmeine erste Websiteist,die WordPress und WooCommerce verwendet.