是否仅查询两个类别中的帖子?

时间:2012-05-11 作者:Ramkumar M

我有3个类别,

1.正在进行的项目(cat id=\'5\')

2、已完成项目(cat id=\'6\')

3、即将进行的项目(cat id=\'7\')

我还有另外两个类别:(Not a Sub Category)

金奈(cat id=\'10\')

迪拜(cat id=\'11)

如何从“获取帖子”OnGoing Projects“使用”Chennai“类别?(我喜欢显示->金奈正在进行的项目。)

我尝试了以下代码:

 <?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“使用”Dubai“类别”(迪拜正在进行的项目):

<?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();
?>
这没有完全起作用。

请帮我弄清楚。

谢谢,我先走了。

1 个回复
最合适的回答,由SO网友:mrwweb 整理而成

我只是在猜测,但我怀疑query_posts() 在这种情况下是不合适的。query_posts() 应该只用于修改主查询,新兴的最佳实践是query_posts() 根本不应该使用,而是用过滤代替pre_get_posts.

说了这么多,我会调查WP_Query 尤其是tax_query argument.

您的新代码段如下所示:

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

结束