WordPress : comment interroger une publication d’une catégorie spécifique

Publié par Jean-Michel le

J’utilise WordPress 3.8. Je souhaite obtenir un message de requête d’une catégorie spécifique. Pour ce faire, j’ai utilisé le code suivant

<?php query_posts('post_type=post&category_id=3&post_status=publish&posts_per_page=10&paged='. get_query_var('paged')); ?>
            <?php if(have_posts()) : ?>
            <?php while (have_posts()) : the_post(); ?>

                  <h2><?php the_title(); ?></h2>
                  <p><?php the_content(); ?></p>

            <?php endwhile; ?>
            <?php endif; ?>

Je reçois tous les messages au lieu d’une catégorie spécifique. Quel est le problème avec ce code.

Solution n°1 trouvée

category_id=3 devrait juste être cat=3

<?php query_posts('post_type=post&cat=3&post_status=publish&posts_per_page=10&paged='. get_query_var('paged')); ?>
        <?php if(have_posts()) : ?>
        <?php while (have_posts()) : the_post(); ?>

              <h2><?php the_title(); ?></h2>
              <p><?php the_content(); ?></p>

        <?php endwhile; ?>
        <?php endif; ?>

Solution n°2 trouvée

En général, évitez d’utiliser query_postscar cela modifie les globales à l’intérieur de la boucle principale. Vous pouvez utiliser get_posts():

<?php


$args = array( 'posts_per_page' => 5, 'offset'=> 1, 'category' => 1 );

$myposts = get_posts( $args );
foreach ( $myposts as $post ) : setup_postdata( $post ); ?>

         <h2><?php the_title(); ?></h2>
             <p><?php the_content(); ?></p>

<?php endforeach;
wp_reset_postdata();?>

tenez compte du fait que 1 est l’identifiant de la catégorie (recherchez l’identifiant de la catégorie que vous souhaitez récupérer sur votre base de données)

Ici vous trouverez plus d’informations

Catégories : Wordpress

Jean-Michel

Jean-Michel est en charge de la partie blog du site. Il met en place la stratégie de contenu et répond aux questions fréquentes sur Wordpress.

0 commentaire

Laisser un commentaire

Avatar placeholder

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *