Afficher des produits WooCommerce aléatoires et masquer ceux sans image en avant

Lorsque vous configurez votre boutique en ligne avec WooCommerce, il est courant de vouloir afficher une sélection de produits aléatoire sur votre page d'accueil. Cependant, si certains de ces produits n'ont pas d'image en avant, cela peut poser un problème. Cet article vous montrera comment afficher huit produits WooCommerce, même s'ils n'ont pas d'image en avant.

Publié par Miha 


Lors de la création d’un site de commerce électronique pour un client, j’ai importé un fichier CSV de produits, mais certaines images étaient manquantes. Cela a provoqué un problème d’affichage lorsque certains produits s’affichaient sans image sur les pages principales. Pour résoudre ce problème, j’ai choisi de masquer les produits sans image pour garantir une présentation homogène et professionnelle de la boutique en ligne.

Le code utilisé dans cet exemple utilise une boucle personnalisée pour récupérer huit produits WooCommerce de manière aléatoire. Le code exclura automatiquement tout produit qui n’a pas d’image en avant et chargera un autre produit à la place pour garantir que vous avez toujours huit produits affichés.

Voici le code complet :

								
									// début du code
$args = array(
    'post_type' => 'product',
    'posts_per_page' => 8,
    'orderby' => 'rand', // trier de manière aléatoire
);
$custom_query = new WP_Query($args);

$counter = 0;

if ($custom_query->have_posts()) :
    while ($custom_query->have_posts() && $counter < 8) :
        $custom_query->the_post();
        if (has_post_thumbnail()) :
            $counter++; // Incrémente le compteur de produits affichés avec des images
            get_template_part('view/product-loop');
        else :
            // Charger un autre produit s'il n'a pas d'image en avant
            $args['post__not_in'][] = get_the_ID(); // Exclure le produit en cours de la requête suivante
            $args['posts_per_page']++; // Charger un produit supplémentaire pour remplacer celui sans image
            $custom_query_no_image = new WP_Query($args);
            if ($custom_query_no_image->have_posts()) :
                while ($custom_query_no_image->have_posts() && $counter < 8) :
                    $custom_query_no_image->the_post();
                    $counter++; // Incrémente le compteur de produits affichés avec des images
                    get_template_part('view/product-loop');
                endwhile;
                wp_reset_postdata();
            endif;
        endif;
    endwhile;
    wp_reset_postdata();
endif;
// fin du code								
							

Expliquons un peu plus en détail comment fonctionne ce code.

Tout d’abord, nous définissons un tableau d’arguments pour notre requête de produits WooCommerce. Nous demandons à la requête de récupérer 8 produits au hasard en utilisant ‘orderby’ => ‘rand’.

Ensuite, nous initialisons un compteur à zéro pour suivre le nombre de produits que nous avons affichés avec des images. Nous utilisons une boucle while pour parcourir les produits récupérés par notre requête.

Dans notre boucle, nous vérifions si le produit en cours a une image en avant en utilisant la fonction has_post_thumbnail(). Si c’est le cas, nous affichons le produit en utilisant get_template_part() et incrémentons notre compteur de produits affichés avec des images.

Si le produit en cours n’a pas d’image en avant, nous excluons ce produit de la requête suivante en ajoutant son ID à la clé ‘post__not_in’ de notre tableau d’arguments. Nous augmentons également la valeur de ‘posts_per_page’ de notre tableau d’arguments pour charger un produit supplémentaire


Partager sur 

Autres articles

Développeur web Madagascar

Développeur web Afrique

Dev wordpress

Sous traitant wordpress

Agence de communication web Création d'un Site Internet , Conception et Communication ...

Agence web : Création de site Internet innovant

Création site internet entre particuliers

création site internet

création site internet gratuit

création site internet bordeaux

création site internet dijon

création site internet toulouse

création site internet lyon

création site internet pro

création site internet nantes création site internet grenoble

création site internet mulhouse

création site internet colmar

création site internet montpellier

création site internet professionnel

création site internet paris

création site internet prix

création site internet caen

création site internet reims

création site internet marseille

création site internet annecy

création site internet nice

création site internet lille

création site internet belfort

création site internet perpignan

création site internet aix en provence

création site internet nancy

création site internet angers

création site internet restaurant

création site internet avocat

création site internet e commerce

création site internet brest

développeur wordpress

développeur wordpress opusdomus

developpeur wordpress

développeur wordpress freelance

développeur wordpress salaire

développeur web wordpress

devenir développeur wordpress

développeur wordpress freelance paris

developpeur wordpress lyon

développeur wordpress paris

développeur wordpress junior

developpeur wordpress maroc

développeur wordpress emploi

developpeur wordpress formation

developpeur wordpress france

agence developpeur wordpress formation developpeur web wordpress

recrutement developpeur wordpress

développeur sous wordpress

developpeur wordpress tarif

developpeur wordpress bordeaux

profil développeur wordpress

comment devenir developpeur wordpress

developpeur wordpress teletravail wordpress avis developpeur

annonce developpeur wordpress

développeur wordpress offre emploi

developpeur wordpress montreal

développeur plugin wordpress

cherche developpeur wordpress

développeur offshore

développeur offshore bordeaux

création thème wordpress

creating theme for wordpress

theme creation in wordpress

creating template for wordpress

creation theme wordpress

créer un thème wordpress de a à z pdf

créer un thème wordpress openclassroom

wordpress theme creation from scratch

creating wordpress theme from scratch

créer un thème wordpress à partir d'une maquette html

créer son thème wordpress facilement

logiciel creation theme wordpress

création de template wordpress

créer un thème wordpress avec photoshop

wordpress theme creation with underscores

création d'un thème wordpress

creation de theme wordpress

créer un thème wordpress responsive

créer template page wordpress

child theme creation in wordpress

logiciel creation de theme wordpress

créer un thème personnalisé wordpress

comment créer son thème wordpress

comment créer un theme wordpress pdf

créer un template wordpress avec photoshop

creation site web theme wordpress

template creation in wordpress

créer thème wordpress avec bootstrap

créer un thème en wordpress

comment créer un child theme wordpress