0

我需要更改此代码,以便第一篇文章显示“first”类,并且还有 firsttop 类和 firstbottom。其余的内页,例如 page/2/ 、 page/3/ 等将没有这个类。我已经尝试了很多事情,请帮助不确定这里有什么问题。

    <?php
if (have_posts()) :
$count = 0;
while (have_posts()):
the_post();
if (get_post_type() == 'post'):
?>

<?php
if (!is_single() && $count == 0):
?>
<div class="firsttop<?php echo !is_home() ? "notop" : "" ?>"></div>
<?php endif; ?>

<article class="post <?php echo !is_single() ? "preview" : "" ?> <?php echo $count == 0 ? "first" : "" ?> <?php echo !is_home() ? "full" : "" ?>">
    <p class="byline">
        <?php the_time('F j, Y'); ?>
    </p>
    <h3>
        <a href="<?php echo get_permalink() ?>"><?php the_title(); ?> </a>
    </h3>
<div>
        <?php the_content('<span class="more">Read&nbsp;More...</span>'); ?>
</div>
    <?php include ('post-info.php'); ?>
</article>

<?php
if (!is_single() && $count == 0):
?>
<div class="firstbottom<?php echo !is_home() ? "nobottom" : "" ?>"></div>
<?php endif; ?>

<?php
endif;
$count++;
endwhile;
endif;
?>
4

1 回答 1

0

您是否尝试过为此使用过滤器?

在此处阅读有关 wordpress add_filter 的更多信息http://codex.wordpress.org/Function_Reference/add_filter

您可以制作一个新插件或将其添加到主题目录中的 functions.php 文件中。

这个人用 post_class 做的,但如果你没有在你的帖子循环页面中使用 post_class,它可能对你不起作用。http://wpsnipp.com/index.php/functions-php/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;
}
于 2013-06-22T08:27:18.397 回答