在循环内的类别中新建WP_QUERY ALL POST

时间:2013-02-01 作者:Emanuel

我正在尝试获取一个类别中的帖子列表,其中包含以下内容:

$category = get_the_category();

$args = array( 
    \'post_type\'           => array(\'post\', \'entrevista\'),
    \'cat\'                 => $category[0]->term_id,
    \'post__not_in\'        => array(get_the_ID()),
    \'ignore_sticky_posts\' => 1,
    \'posts_per_page\'      => -1
    );

$queryScience = new WP_Query( $args );

unset($args);
?>

<?php if ( $queryScience->have_posts() ) : while ( $queryScience->have_posts() ) : ?>
    <option value="<?php echo get_permalink($queryScience->post->ID); ?>"><?php echo ucwords(get_the_date(\'M Y\', $queryScience->post->ID)); ?></option>
<?php endwhile; endif; wp_reset_query(); wp_reset_postdata(); ?>
我认为它会无限循环,因为它显示了超过40000个结果。我做错了什么?

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

你必须打电话the_post() 在循环中,否则将在无限循环中输出第一篇文章,如下所示have_posts() 永远都是真的。

$queryScience->the_post();
而且,你不需要wp_reset_query() 具有WP_Query, wp_reset_postdata() 足够了。

结束

相关推荐

如何在使用WP_LIST_TABLE时从URL中删除_wp_http_referer?

我构建了一个插件,它使用WP\\u List\\u table类显示一个表。该表显示可以应用筛选器和一些批量操作的条目。问题是,当我多次单击“筛选”按钮或“应用批量操作”按钮时,会将\\u wp\\u http\\u referer参数添加到URL中,并且每次单击该按钮时,该参数都会越来越长。最终,URL很长,我在浏览器中看到一个空白页面,并显示以下错误消息:Request-URI Too Large The requested URL\'s length exceeds the capacity