Q:

Привязка класса css к первой новости в цикле , на движке wordpress

В цикле указывается класс ко всем новостям, которые будут выводится.
Я взял шаблон, где к первой новости идет класс post1:
<div id="post-1" class="post1">

Нужно, чтобы к последующим новостям выводился класс post:
<div id="post-2" class="post">
<div id="post-3" class="post">

Если задать функцию в functions.php:
<?php //свой класс у первой записи в цикле start
function wph_first_post_in_query($classes) {
    global $wp_query;
    if (0 == $wp_query->current_post) {
        $classes[] = 'first';
    }
    return $classes;
}
add_filter('post_class', 'wph_first_post_in_query');
//свой класс у первой записи в цикле end
?>

и вместо <div class="post" id="post"> задать функцию wp <div <?php post_class() ?> id="<?php the_ID(); ?>">, у меня получается задать отдельный стиль для первой новости , но проблема заключается в том, что стиль применяется ко всем новостям полностью , а потом еще к первой отдельно. Мне необходимо, чтобы у первой новости стиль был абсолютно другой.

A:

Можно просто ввести в цикл вывода постов счётчик, по значению которого определять, какой по счёту пост вы выводите
<?php
if (have_posts()) {
    $i = 0;
    while (have_posts()) {
        the_post();
        ?>
        <div class="<?php echo $i == 0 ? 'post1' : 'post'; ?>">...</div>
        <?php

        $i++; //не забывайте про инкремент счётчика в каждой итерации
    }
}

Обновление для частного случая:
<?php if (have_posts()) : $i = 0; ?>
    <?php while (have_posts()) : the_post();  ?>
        <div class="<?php echo $i == 0 ? 'post1' : 'post'; ?>" id="post"> контент </div>
    <?php $i++; endwhile; ?>
    <div class="pagenavi">
        <?php if(function_exists('wp_pagenavi')) { wp_pagenavi(); } ?>
    </div>
    <?php else : ?>
<?php endif; ?>

