将类添加到循环中的最后3个帖子

时间:2011-10-30 作者:Mark

到目前为止,我已经有了这段代码,它将类first、second和third添加到循环中的每一个第一、第二和第三个post中。它还向循环中的前3个帖子添加了一个类。但是我怎样才能使它在最后3篇文章中添加另一个类呢?

if (have_posts()) : 
while (have_posts()) : 
    the_post();
    $classes = array(\'themeview\');
    $classes[] = $style_classes[$counter % 3];
    if ($counter < 3) $classes[] = \'top\';
    $class = sprintf(\'class="%s"\', implode(\' \', $classes));
    $counter++
?>
<li <?php echo $class?>>
谢谢!

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

WP\\u Query似乎在运行时设置了两个变量$posts和$post\\u count(根据http://core.trac.wordpress.org/browser/tags/3.2.1/wp-includes/query.php ). 你可以访问这两篇文章,找出你是否在最后三篇文章中。

var\\u转储这两个以查看是否有计数,添加您自己的计数器,您应该可以开始了。

编辑:实际上$post\\U count和$current\\U post对您很有用。

SO网友:Tom Auger

循环不知道它将弹出多少条记录,因此您无法使用您描述的方法标记最后三篇文章。

实际上,取决于你想做什么,这可能不是真的。如果您只关心主页上显示的最后三篇文章,则任何存档或文章页面上显示的文章总数将在管理后端使用“设置”>“阅读”>“博客页面最多显示…”进行控制。该号码可用get_option( \'posts_per_page\' ). 有鉴于此,您可以添加另一个if 条款大致如下:if ( $counter > ( get_option( \'posts_per_page\' ) - 3 )

好的,除此之外,你需要使用get_posts(). 具有$posts_array = get_posts() 你可以这样做if ( $counter > count( $posts_array ) - 3 ).

结束

相关推荐

Create a blank test.php

有时有必要找出CSS错误或其他什么,如果您有一个最小的测试页面,只需插入要测试的特定代码,那就太好了。我如何创建这样一个空测试。php?我只能找到this. 但是,这样做只会创建与页面样式相同的页面。php一号,不是吗?我想我需要在我的功能中加入一些东西。php告诉Wordpress它应该为测试创建一个新模板。php?我该怎么做?提前非常感谢!:)