Ich habe 3 Kategorien,
1. Projekte in Bearbeitung (cat id = '5')
2. Abgeschlossene Projekte (cat id = '6')
3. Bevorstehende Projekte (cat id = '7')
und ich habe auch noch 2 Kategorien: ( keine Unterkategorie )
chennai (cat id = '10 ')
Dubai (cat id = '11)
Wie erhalte ich den Beitrag aus der Kategorie " OnGoing Projects " mit " Chennai "? (Ich zeige gern -> OnGoing Projects auf Chennai.)
Ich habe den folgenden Code ausprobiert:
<?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();
?>
wird wahrscheinlich die Kategorie " OnGoing Projects " mit " Dubai " angezeigt? (Laufende Projekte zu Dubai) dazu:
<?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();
?>
Dies funktioniert nicht vollständig.
Bitte helfen Sie mir, es herauszufinden.
Danke, ich komme voran.
Ich rate hier nur, aber ich vermute, dass query_posts()
in dieser Situation nicht angemessen ist. query_posts()
sollte nur zum Ändern der Hauptabfrage verwendet werden, und es wird empfohlen, query_posts()
überhaupt nicht zu verwenden, sondern stattdessen durch das Filtern von pre_get_posts
zu ersetzen.
Nach alledem würde ich mich mit WP_Query
und insbesondere mit dem Argument tax_query
befassen.
Ihr neues Snippet sieht ungefähr so aus:
<?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(); ?>