比如说,我有一个常规的主页,上面列出了帖子,就像任何一个常规的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缩略图问题)
有什么办法吗?
预祝大家新年快乐!:)
最合适的回答,由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;
}
}
}
我不知道你是否有一个模式,你可能能够映射数学或如果你要手动构建整个开关。