Как отметить каждый третий пост?

Я работаю над сайтом WordPress для своей группы, и я хотел бы отметить каждый третий пост на нашей странице блога, чтобы к нему применялся специальный класс, у кого-нибудь есть указания, как этого добиться? Любая помощь очень очень ценится, спасибо!

Понравился вопрос? Нужен ответ? Поддержите проект
WPAsk
Ответов: 3
  1. helgatheviking

    если ваша тема использует post_class() для генерации классов записей, вы можете попробовать. я не уверен на 100%, как он справится с нумерацией страниц.

    add_filter('post_class','wpa_44845');
    
    global $current_count;
    
    $current_count = 1;
    
     function wpa_44845( $classes ){
    
        global $current_count;
    
        if ($current_count %3 == 0 ) $classes[] = 'special-class';
    
        $current_count++;
    
        return $classes;
    
     }
    

  2. kaiser
    $i = 0;
    if ( have_posts ) :
    while( have_posts ) :
        the_post();
    
        $class = 'class="BASIC-CLASS';
        if ( 0 === ( $i % 3 ) )
            $class .= 'YOUR-SPECIAL-CLASS';
        $class .= '"';
    
        echo "<div {$class}>";
            // do stuff
        echo '</div>';
    
        $i++;
    endwhile;
    endif;
    
  3. rohmann

    Это можно сделать с помощью CSS3, применив селектор nth-child.

    article.post:nth-child(3n+0)
    {
        background-color: #777;
    }
    

    Или с помощью jQuery вы можете добавить класс CSS, используя ту же технику.

    jQuery(function($) {
        $( "article.post:nth-child(3n+0)" ).addClass("custom-class");
    });
    

Добавить ответ

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: