我有一个主页,我试图查询自定义帖子类型以及默认帖子的所有内容,
现在我有两个循环运行,一切看起来都很好,除了我希望这两种不同的类型混合,如果这有意义的话。
我正在运行一个jquery函数,该函数可以显示和隐藏来自自定义帖子类型或默认“博客”帖子类型的帖子。但是,由于我必须循环,默认帖子总是显示在顶部,自定义帖子类型的帖子显示在底部,这里是我的live页面的链接
http://themes.thefragilemachine.com/themachine_v4/
您可以看到,我的自定义帖子类型显示为“w”图标,它们显示在末尾附近,但我希望它们混合在一起,。我知道这是一种类型,只是想找出最好的方式来解释我想要实现的目标。任何帮助都将是惊人的!这是我的密码
<?php if (have_posts()) : ?>
<?php query_posts(\'posts_per_page=6\');?>
<?php while (have_posts()) : the_post(); ?>
<div class="postitem mall floatleft myblog storm_fader">
<div class="postitem-img lordfade">
<a href="<?php the_permalink() ?>"><?php the_post_thumbnail(\'type2\'); ?></a>
</div>
<div class="postitem-contentwrap">
<div class="postitem-txt">
<h6><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h6>
<?php the_excerpt(\'\'); ?>
</div>
<div class="postitem-info">
<ul>
<li><span class="post-label-blog"></span></li>
<li class="spec"><a href="<?php the_permalink() ?>">
<img src="/themachine_v4/wp-content/themes/themachine_v5_2/lib/imgs/img_gopost.jpg">
</a></li>
</ul>
<div class="clear"></div>
</div>
</div>
<div class="postitem-shadow"></div>
</div>
<?php endwhile; ?>
<?php else : ?>
<h2 class="center" style="color:#FFF;">ERROR</h2>
<?php endif; ?>
<?php rewind_posts(); ?>
<?php if (have_posts()) : ?>
<?php query_posts(\'post_type=work&posts_per_page=6\');?>
<?php while (have_posts()) : the_post(); ?>
<div class="postitem mall floatleft mywork storm_fader">
<div class="postitem-img lordfade">
<a href="<?php the_permalink() ?>"><?php the_post_thumbnail(\'type2\'); ?></a>
</div>
<div class="postitem-contentwrap">
<div class="postitem-txt">
<h6><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h6>
<?php the_excerpt(\'\'); ?>
</div>
<div class="postitem-info">
<ul>
<li><span class="post-label-work"></span></li>
<li class="spec"><a href="<?php the_permalink() ?>">
<img src="/themachine_v4/wp-content/themes/themachine_v5_2/lib/imgs/img_gopost.jpg">
</a></li>
</ul>
<div class="clear"></div>
</div>
</div>
<div class="postitem-shadow"></div>
</div>
<?php endwhile; ?>
<?php else : ?>
<h2 class="center" style="color:#FFF;">ERROR</h2>
<?php endif; ?>
最合适的回答,由SO网友:Bainternet 整理而成
你在那里做了很多错事,例如,你应该只使用query_posts
在模板文件和页面的主查询中,任何其他操作都应该使用get_posts
或WP_Query
.
因此,要使您的帖子类型相互混合,您只需在查询时使用数组设置帖子类型:
<?php query_posts(array(\'posts_per_page\' => 6, \'post_type\' => array(\'work\',\'post\')));
if (have_posts()) :
while (have_posts()) : the_post(); ?>
<div class="postitem mall floatleft myblog storm_fader">
<div class="postitem-img lordfade">
<a href="<?php the_permalink() ?>"><?php the_post_thumbnail(\'type2\'); ?></a>
</div>
<div class="postitem-contentwrap">
<div class="postitem-txt">
<h6><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h6>
<?php the_excerpt(\'\'); ?>
</div>
<div class="postitem-info">
<ul>
<li><span class="<?php
if ($post->post_type =="post"){
echo \'post-label-blog\';
}else{
echo \'post-label-work\';
}?>"></span></li>
<li class="spec"><a href="<?php the_permalink() ?>">
<img src="/themachine_v4/wp-content/themes/themachine_v5_2/lib/imgs/img_gopost.jpg">
</a></li>
</ul>
<div class="clear"></div>
</div>
</div>
<div class="postitem-shadow"></div>
</div>
<?php endwhile;
else : ?>
<h2 class="center" style="color:#FFF;">ERROR</h2>
<?php endif; ?>