Démarrer votre site WordPress en quelques minutes

Query qui ne fonctionne pas comme il se doit

Dernière mise à jour le 16 mai 2019 Publié le 16 juin 2016
WordPress

Même si ça affiche un article, ça n’en n’affiche pas plus qu’un seul. J’ai plus qu’un article, mais seulement 1 qui s’affiche, pas plus que ça… Qu’est-ce qui se passe avec ce code?

<?php
    query_posts( array ( 'post_type' ='product', 'product_cat' = 'newly-released', 'post_per_page' = 4 ) );
while (have_posts()) : the_post();
<h2><a href="<?php echo get_permalink(); ?>"><?php the_title(); ?></a></h2>
      <a href="<?php the_permalink() ?>"><?php echo get_the_post_thumbnail(); ?></a><?php the_excerpt(); ?>
<hr/>
endwhile;
wp_reset_query();
?>

Consultez les commentaires ci-dessous pour connaître la ou les réponses à la question posée.

Auteur
Louis-Philippe Dea

Fondateur de WP Pour les Nuls, de l'agence Guérilla Web et professeur au collège. Je me nourris de WordPress, de web et de yoga!

Articles similaires

Commentaires

  1. Louis-Philippe Dea a écrit

    Essaie ça et dis-moi si ça fonctionne. Ne mets pas ta catégorie dans le tableau $args. Tu dois voir tous les produits peu importe la catégorie.

    <?php
            $args = array( 'post_type' => 'product', 'posts_per_page' => -1,  );
            $loop = new WP_Query( $args );
            while ( $loop->have_posts() ) : $loop->the_post(); global $product; ?>
                        <a href="<?php echo get_permalink( $loop->post->ID ) ?>" title="<?php echo esc_attr($loop->post->post_title ? $loop->post->post_title : $loop->post->ID); ?>">
                            <?php woocommerce_show_product_sale_flash( $post, $product ); ?>
                            <?php if (has_post_thumbnail( $loop->post->ID )) echo get_the_post_thumbnail($loop->post->ID, 'shop_catalog'); else echo '<img src="'.woocommerce_placeholder_img_src().'" alt="Placeholder" width="300px" height="300px" />'; ?>
                            <h3><?php the_title(); ?></h3>
                            <span class="price"><?php echo $product->get_price_html(); ?></span>
                        </a>
                        <?php woocommerce_template_loop_add_to_cart( $loop->post, $product ); ?>
        <?php endwhile; ?>
        <?php wp_reset_query(); ?>
  2. Judia Lamarche a écrit

    Toujours le même problème. J’avais oublié de mentionner que j’utilise WooCommerce.

    • Louis-Philippe Dea a écrit

      Ok, alors tu essaies de publier tes derniers produits de WooCommerce, pas des articles.
      Tu as mis le tableau de paramètres pour ta requête en incluant le post_type pour aller chercher les produits, ce qui est bien, alors pour publier tous tes produits, tu dois mettre le paramêtre posts_per_page de ‘post_per_page’ = 4 à ‘posts_per_page’ => -1

      • Judia Lamarche a écrit

        J’ai déjà essayé -1, mais ça n’a rien fait.

      • Louis-Philippe Dea a écrit

        Tu pourrais ajouter un paramètre à l’URL pour le nombre d’articles à montrer par page. Quelque chose comme :

        <?php
        $page = ( get_query_var( 'posts_per_page' ) == 'all' ) ? -1 : 45;
        query_posts( array(
             'post_type' ='product',
              'product_cat' = 'newly-released',
            'posts_per_page' => $page
        ) );
        while (have_posts()) : the_post();
        ?>
        <h2><a href="<?php echo get_permalink(); ?>"><?php the_title(); ?></a></h2>
              <a href="<?php the_permalink() ?>"><?php echo get_the_post_thumbnail(); ?></a><?php the_excerpt(); ?>
        <hr/>
        <?php
        endwhile;
        wp_reset_query();
        ?>
  3. anthony a écrit

    ‘post__not_in’ => get_option( ‘sticky_posts’ )
    pour enlever les sticky posts sa ne serait pas sa qui t’emmerde ?

Ajouter un commentaire

Étant donné que chaque site WordPress est différent (versions, thèmes, plugins, etc.) et que WP Pour les Nuls est un site gratuit, le module de commentaire n'est pas un service d’assistance technique WordPress gratuit.