WordPress循环帖子计数器从未更改

dgenwo3n  于 2022-12-03  发布在  WordPress
关注(0)|答案(2)|浏览(176)

我想给第一篇文章设计不同的样式,所以我尝试使用一个简单的计数器,它会给第一篇文章添加一个类。
首先,在index.php上,我有

if ( have_posts() ) :
    $postCount = 0;
    while ( have_posts() ) :
        the_post();
        $postCount++;
        get_template_part( 'template-parts/content', get_post_type() );
    endwhile;
endif;

然后在content.php

<div class="article-wrapper <?php echo $postCount; ?>">

$postcount始终为1
如果我把$postCount = 0;$postCount++;移到content.php,这个值也不会改变。
我可以创建一个自定义博客页面模板,但我希望看到这个工作。

xzlaal3s

xzlaal3s1#

你必须应用一个过滤器post_class。下面的代码来自本文:https://www.isitwp.com/add-class-to-first-post-in-the-loop/

add_filter( 'post_class', 'wps_first_post_class' );
function wps_first_post_class( $classes ) {
    global $wp_query;
    if( 0 == $wp_query->current_post )
        $classes[] = 'first';
        return $classes;
}
tyg4sfes

tyg4sfes2#

很抱歉,我没有及时回复,但是我认为它会在其他方面对你有所帮助。2在你index.php中,你可以将你的代码更改为

if ( have_posts() ) :
    $postCount = 0;
    while ( have_posts() ) :
        the_post();
        $postCount++;
        get_template_part( 'template-parts/content', get_post_type(),['post_counter'=>$postCount] );
    endwhile;
endif;

在你的content.php

if ( $args['post_counter'] ) {
      echo $args['post_counter'];
    }

相关问题