调整最新帖子的布局,考虑到分页

时间:2013-03-27 作者:Decor

我在主页上显示了两篇帖子,并使用帖子分页来浏览以前的帖子。

我的问题是我想对最近的帖子的布局做一点修改。这听起来像是一个非常基本的问题,我已经看到了很多答案,但它们只解决了页面上第一篇帖子的问题,而不是实际的——唯一的——最近的帖子。

现在我试过这样的方法:

<?php if(have_posts()):?>
   <?php $pcount = 0;?>
<?php endif;?>

<?php while (have_posts()): the_post(); ?>
   <?php $pcount++;?>
   <?php if($pcount < 2): ?>
       /*some html changes*/
   <?php endif; ?>
<? endwhile; ?>
这很有效。页面上的第一篇文章(默认情况下是最近的一篇)的布局已更改。但当我浏览到下一页时,我看到了相同的结果。第一篇帖子(实际上是最近的第三篇帖子,不是最近的),也被修改了。。。

那么,我的实际问题是:我如何检查帖子是否actually 最近的一个。不是页面上的第一个。

谢谢

2 个回复
最合适的回答,由SO网友:Tom J Nowell 整理而成

$pcount是指你在当前循环中浏览的帖子数量,而不是页面数量。

想一想循环在做什么,如果你在第2页,为什么会有来自第1页的帖子?这毫无意义,这是一个认为行不通的信号。

如果你所做的一切都能成功,那么:

while (have_posts()) {
    the_post();
    the_title();
}
将打印第2页上所有帖子的标题,and 第1页。事实并非如此。主循环代码需要有某种提示,说明您的意图是什么,而实际上并非如此。

所以你的问题实际上是:

如何确定当前页面?

我们可以在这里看到答案:

https://stackoverflow.com/questions/1031442/finding-current-page-number-in-wordpress

即:

$paged = (get_query_var(\'paged\')) ? get_query_var(\'paged\') : 1;

SO网友:Michael

条件标记is_paged() 可用于限制对第一页的更改;

例如,将条件语句更改为:

   <?php if($pcount < 2): ?>
收件人:

   <?php if($pcount < 2 && !is_paged() ): ?>

结束

相关推荐