我如何根据顺序列出不同格式的帖子?

时间:2013-12-29 作者:Devin

比如说,我有一个常规的主页,上面列出了帖子,就像任何一个常规的WP博客一样。现在,我想实现这一点:如果是列表中的第一篇文章,请使用一些布局,如果是第二篇,请使用另一个布局,如果是第三篇,请使用另一个布局,依此类推。更好的是:如果是帖子1、5、9、15、22->使用布局1。如果是2、3、8、12、14->使用布局2(基本上,添加可重用代码)

供参考:

post 1 -> <div class="layout1">....</div>
post 2 -> <div class="layout2">....</div>
post 3 -> <div class="layout3">....</div>
post 4 -> <div class="layout1">....</div>
post 5 -> <div class="layout1">....</div>
(所以没有“每个给定数量的帖子,使用布局x”,而是“如果在spot x中,使用布局x”)

我知道我可以用CSS做到这一点,这很简单,但一点都不聪明,因为我想使用不同的后期缩略图大小,所以用大图像来加载小尺寸的图像是荒谬的。

我试着寻找WP条件,if\\u post什么的,但找不到任何东西,所以真的没有关于如何实现这一点的线索(如果不使用砌体,这将有相同的post\\u缩略图问题)

有什么办法吗?

预祝大家新年快乐!:)

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

WP_Query 将跟踪当前帖子。例如:

$p = new WP_Query(array(\'post_type\'=>\'post\',\'posts_per_page\'=> 10));
if ($p->have_posts()) {
  while ($p->have_posts()) {
    $p->the_post();
    echo $p->current_post.\'<br>\';
  }
}
你可以用它来有选择地格式化你的帖子。例如

$p = new WP_Query(array(\'post_type\'=>\'post\',\'posts_per_page\'=> -1));
if ($p->have_posts()) {
  while ($p->have_posts()) {
    $p->the_post();
    switch ($p->current_post) {
      case 0:
      case 3:
      case 4:
        echo \'<div class="layout1">....</div>\';
      break;
      case 1:
        echo \'<div class="layout2">....</div>\';
      break;
      case 2:
        echo \'<div class="layout3">....</div>\';
      break;
    }
  }
}
我不知道你是否有一个模式,你可能能够映射数学或如果你要手动构建整个开关。

结束

相关推荐