web-dev-qa-db-fra.com

Requête uniquement les messages des deux catégories sur deux?

J'ai 3 catégories,

1. Projets en cours (Cat ID = '5')

2. Projets terminés (Cat ID = '6')

3. Projets à venir (Cat ID = '7')

et aussi j'ai 2 autres catégories: ( Pas une sous-catégorie )

  1. chennai (id de chat = '10 ')

  2. Dubaï (id de chat = '11)

Comment obtenir le message de la catégorie " Projets en cours " avec " Chennai "? (J'aime afficher -> Projets en cours sur Chennai.)

J'ai essayé le code suivant:

 <?php
 query_posts('posts_per_page=6&cat=5&cat=10');
while(have_posts()) : the_post();
?><li>
 <a href="<?php the_permalink(); ?>"><?php the_post_thumbnail(array(230,192)); ?></a>
</li>
<?php endwhile;
wp_reset_query();
?>

pour afficher la catégorie " Projets en cours " avec " Dubaï "? (Projets en cours à Dubaï) pour cela:

<?php
 query_posts('posts_per_page=6&cat=5&cat=11');
while(have_posts()) : the_post();
?><li>
 <a href="<?php the_permalink(); ?>"><?php the_post_thumbnail(array(230,192)); ?></a>
</li>
<?php endwhile;
wp_reset_query();
?>

Cela ne fonctionne pas pleinement.

S'il vous plaît aidez-moi à comprendre.

Merci je avance.

2
Ramkumar M

Devinez juste ici, mais je soupçonne que query_posts() n'est pas approprié dans cette situation. query_posts() ne devrait être utilisé que pour modifier la requête principale, et la meilleure pratique émergente est que query_posts() ne devrait pas être utilisé du tout, mais au lieu de cela, remplacé par le filtrage pre_get_posts.

Cela dit, je regarderais dans WP_Query et en particulier l'argument tax_query .

Votre nouvel extrait ressemblera à ceci:

<?php
$my_query_args = array(
    'posts_per_page' => 6,
    'tax_query' => array(
        array(
            'taxonomy' => 'category',
            'field' => 'id',
            'terms' => array( 5, 10 ),
            'operator' => 'AND'
        )
    )
);

$my_query = new WP_Query( $my_query_args );

if( $my_query->have_posts() ) : while( $my_query->have_posts() ) : $my_query->the_post(); ?>

<li>
    <a href="<?php the_permalink(); ?>"><?php the_post_thumbnail(array(230,192)); ?></a>
</li>


<?php endwhile; endif; wp_reset_postdata(); ?>
5
mrwweb