如何在此查询中返回单个类别的结果?

时间:2016-04-25 00:05:29

标签: wordpress

如何在此查询中返回类别84中的最新帖子?

<?php
            /*$args = array('post_type'=>'post', 'posts_per_page'=>'10', 'post_no_in'=>$do_not_duplicate);*/
            $args = array('post_type'=>'post', 'post_no_in'=>$do_not_duplicate);
            $query = new WP_Query($args);
            query_posts("cat=84&showposts=1&orderby=DESC");
            if($query->have_posts()){
            while(have_posts()) : the_post();   
            /*$do_not_duplicate[] = get_the_ID();*/  ?>
            <div>
               <?php the_post_thumbnail(); ?>
                 <div class="instruction">
                <div class="home_title">MOST READ</div>
                <div class="home_title_desc"><h3><a href="<?php the_permalink(); ?>"><?php echo the_title(); ?></a></h3></div>
                 </div>
            </div>

        <?php endwhile; ?>
        <?php } ?>  

我试过'cat'=&gt; 84,在数组中,但没有去。你能告诉我如何仅从84类返回结果吗? 感谢

2 个答案:

答案 0 :(得分:1)

此代码非常混乱,实际上尝试连续运行两个查询;其中一个使用query_posts(),这绝不是一个好主意(see here用于解释)。

这是为您重写的查询,按要求从类别84获取最新帖子:

$args = array(
    'post_type' => 'post',
    'category__in' => 84,
    'order' => 'DESC',
    'posts_per_page' => 1,
);

$query = new WP_Query($args);

if($query->have_posts()){
    while(have_posts()){
        the_post();
        // do stuff here...
    }
}

有关每个参数的作用的信息,请参阅WP_Query documentation。特别是,posts_per_page参数告诉Wordpress只为你返回一个帖子。

我从原始代码中遗漏了'post_no_in'=>$do_not_duplicate,因为我不确定它在做什么,但是如果你想问一下这个问题,或者你可以在WP_Query文档中找到合适的参数并将其添加到上面的$args数组中。

答案 1 :(得分:0)

啊,query_posts("cat=84&showposts=1&orderby=DESC");