如何在不使其成为全局的情况下更改特定循环中返回的帖子数量?

时间:2013-07-19 作者:Exploit

我指的网站是technibility.com. 如果你看一下,上面的滑块正在使用这段代码

<?php if(is_home()) { ?>
<div id="ca-container" class="ca-container">
<div class="ca-wrapper">

<?php while (have_posts()): the_post(); ?>
<div class="ca-item ca-item-2">
<div class="ca-item-main">

<?php if (has_post_thumbnail()): ?>
<a href="<?php the_permalink(); ?>">
 <?php the_post_thumbnail(); ?>
</a>
<?php endif; ?>
               
<h3><a href="<?php the_permalink(); ?>"> <?php the_title(); ?></a></h3>
</div>
</div>
<?php endwhile; ?>
</div>
</div>
<?php } ?>
问题是如果我使用

query_posts(\'showposts=20\');
它将影响整个网站,并向我展示旋转木马中的20篇文章和页面上的帖子。如何强制它仅对滑块生效?

还有没有办法让\\u post\\u缩略图()不拉伸图像,使用150px的高度和任何宽度,但保持在300px以下?

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

您需要像这样向WP\\U查询传递一个数组

然后在结束查询后,使用此选项重置查询数据。

<?php wp_reset_query(); ?>
使用WP\\U查询的标准查询示例

$arg = array(
\'posts_per_page\' => 20
);

$query = new WP_Query($args)
//start to loop your things here
 <?php if ($query->have_posts()) : ?>
 <?php while ($query->have_posts()) : $query->the_post(); ?>
// your custom code here
endif; endwhile;

结束