所以我试着只从1个类别中查询一些帖子,它看起来确实有效。我也尝试了get\\u post(),但没有成功,过了一段时间,我就放弃了使用query\\u posts(这显然是一种不好的做法)。这是我的代码:
<div id="primary">
<div id="content" role="main">
<?php query_posts(\'slug=cat1\'); ?>
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<div class="post">
<h1>
<a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>">
<?php the_title(); ?>
</a>
</h1>
<small><?php the_time(\'F jS, Y\') ?> by <?php the_author_posts_link() ?></small>
<br />
<br />
<div class="entry">
<?php the_content(); ?>
</div>
</div>
<hr />
<?php endwhile; else: ?>
<p><?php _e(\'Sorry, no posts matched your criteria.\'); ?></p>
<?php endif; ?>
</div><!-- #content -->
</div><!-- #primary -->
第二个
endif;
是从上面我有一个测试,对页面slug。但根据我的理解,query\\u posts应该用该类别中的所有帖子填充$post,但我仍然从未分类和另一个类别中获取帖子,所以它根本不过滤。。。建议?
Edit1 我试过使用cat=0
和cat=1
而且cat=2
但唯一真正过滤的是cat=1
过滤为未分类。所有其他显示所有帖子。不知道为什么。。。
Edit2 query_posts( array ( \'category_name\' => \'Category1\', \'posts_per_page\' => -1 ) );
返回时带有“else”语句,表示没有帖子,也没有符合我标准的内容。我直接从抄本上查到的?
最合适的回答,由SO网友:wdalhaj 整理而成
奇怪的问题!,请尝试以下操作:
确保目标类别不为空如果您使用的是自定义帖子类型,请将其包含在查询中\'post_type\'=>\'advertisement\'
例如如果目标类别是特殊分类法,请确保将其包含在查询中:\'term\'=>\'cars\'
和孩子一起\'cars\'=>\'toyota\'
.
在这个例子中,我想明确一点:汽车就像是一个类别,而丰田就像是一个未分类的类别最后一件事:通过回显查询来跟踪查询,找出准确到达的查询:
echo $query_string;
;将其放置在页面顶部<?php if ( have_pos...
就在query_posts(..);
如果查询不起作用,请告诉我们查询结果。
SO网友:jose pacheco
当您的query\\u var上没有任何内容时显示所有post的简单代码(输出将为-1以显示所有post)和通过获取query\\u var来显示特定post。
if(get_query_var(\'cat\') == \'\'){
$cat = (get_query_var(\'cat\')) ? get_query_var(\'cat\') : -1;}
else{
$cat = (get_query_var(\'cat\'));}
$args = array(\'posts_per_page\' => 5, \'paged\' => $paged, \'cat\' => $cat);
query_posts($args);
希望能对你有所帮助。
Edited: ofc您需要将菜单上的“cat”id传递到URL中。
Edited2:法典页
挂接到“pre\\u get\\u posts”并使用is\\u main\\u query更改主查询http://codex.wordpress.org/Plugin_API/Action_Reference/pre_get_posts
这是首选的方式。。。但上面的例子就像一个冠军!
只需确保在完成第二个循环后调用wp\\u reset\\u query()。