我有一个特色的帖子类别。Im标记了一些帖子的特色。当我查看分类页面(例如体育)时,我想在侧栏上列出已标记的帖子列表(例如特色和体育)
我尝试了以下代码。这对我很有用,但当我使用代码时,我看到两个类别的帖子(例如体育),一个是受代码影响的类别帖子列表,另一个是列出相同的帖子列表。
我的示例图片!Here
我怎样才能解决这个问题?我的代码:
<?php
//55 is my Featured Category id
if ( is_category() ) {
$current_cat = get_query_var(\'cat\');
}
query_posts(array(\'category__and\' => array(55, $current_cat )));
if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<li><a href="<?php the_permalink(); ?>">
<?php the_title(); ?>
</a> </li>
<?php endwhile; else: ?>
<?php endif; ?>
最合适的回答,由SO网友:BigBagel 整理而成
我想你是在问你的自定义二次回路对主回路的影响,对吗?
query_posts()
改变主回路。一个快速解决方法是打电话wp_reset_query()
在自定义循环重置查询数据后:
<?php wp_reset_query(); ?>
但是,它使用起来更高效、更友好
WP_Query()
而不是
query_posts()
(尤其是在进行二次循环时)。这应该与使用
WP_Query()
:
<?php
if ( is_category() ) {
$current_cat = get_query_var(\'cat\');
}
$args = array(
\'category__and\' => array( 55, $current_cat )
);
$my_query = new WP_Query( $args );
?>
<?php while ( $my_query->have_posts() ) : $my_query->the_post(); ?>
<li>
<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
</li>
<?php endwhile; ?>
<?php wp_reset_postdata(); ?>
参考文献:
http://codex.wordpress.org/Function_Reference/query_posts
http://codex.wordpress.org/Class_Reference/WP_Query