web-dev-qa-db-ja.com

2つのカテゴリの双方向からの投稿のみを照会しますか?

私は3つのカテゴリーがあります、

1.進行中のプロジェクト(cat id = '5')

2.完成したプロジェクト(cat id = '6')

3.今後開催されるプロジェクト(カタログID = '7')

また、私は別の2つのカテゴリがあります:( サブカテゴリではありません

  1. チェンナイ(cat id = '10 ')

  2. ドバイ(cat id = '11)

" Chennai "カテゴリで " OnGoing Projects "から投稿を取得するにはどうすればよいですか?(私はChennaiの[表示] - > [OnGoingプロジェクト]をクリックします。

私は以下のコードを試しました:

 <?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();
?>

" ドバイ "カテゴリで " OnGoing Projects "を表示する可能性がありますか。 (ドバイで進行中のプロジェクト)

<?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();
?>

これは完全には機能していません。

把握するのを助けてください。

ありがとうございます。

2
Ramkumar M

ここで推測しているだけですが、query_posts()はこの状況では適切ではないと思います。 query_posts()はメインのクエリを変更するためだけに使用されるべきです、そして、新たなベストプラクティスはquery_posts()はまったく使用されるべきではなく、代わりにフィルタリングpre_get_postsに置き換えられるべきです。

以上のことを説明したので、WP_Query、特に tax_query引数 を調べます。

新しいスニペットは次のようになります。

<?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