hiddenseek, Серьезно? 200+ Кб CSS, 300+ Кб JS не считая jQuery (от которого как бы не уйти, поэтому плюсуем еще его), полное наплевательство на семантику и адекватный DOM, ужасная каша из классов в HTML и тд. Одним словом - говнокод. Ну и тормоза.
Все то же самое делается красиво и элегантно на ванильке. А если вы этим занимаетесь хотя бы год, то у вас уже есть (должны быть) свои либы / сниппеты, формируя таким образом свой собственный фреймворк, без всего этого мусора.
hiddenseek, собрать кастомный WP_Query который будет дергать функцию с параметром класса в засимости от порядкого номера. Если верстка критично будет отличаться, то лучше вместо класса использовать целый шаблон элемента, дергая get_template_part
Mike, ну если уже лезть в бекенд, то зачем кастомный WP_Query? В стандартном цикле, который идет по главному запросу все то же самое делается. Дополнительные кастомные запросы нужны для получения других постов, а не для изменения вывода стандартного запроса.
Игорь Воротнёв, На просторах нашел, Вы похожее имеете ввиду ?
<?php
$count = 0; //set up counter variable
while (have_posts()) : the_post();
$count++; //increment the variable by 1 each time the loop executes
if ($count<4) {
// here put the special code for first three
}
// here put the code for normal posts
endwhile;
?>
hiddenseek, да, смысл такой. Только у вас условий будет побольше, и кроме сравнений > < >= <= придется еще использовать оператор %. В общем, если хотите порешать ситуацию добавлением классов - тогда так. Если не боитесь CSS - попробуйте через nth-child
обычно когда формируют такие страницы, тянут не только посты, но и различные таксонометрии.
Понятия не имею что такое "таксонометрии", но если вы про таксономии, то они в главном цикле (как и в любом произвольном WP_Query по умолчанию) и так тянутся с помощью update_post_caches(). Контролируются данные подзапросы с помощью параметра WP_Query 'update_post_term_cache' => bool (и 'update_post_meta_cache' => bool для метаданных соответственно). По умолчанию стоит true, поэтому термины таксономий и метаданные получаются. Подучите матчасть.
можно вместо if использовать switch.
Не всегда. Switch является разумной альтернативой if/elseif/else, когда условия связаны в одну логику. В данном случае такой подход (if/elseif или switch вместо него) вполне может привести к дублированию кода. Использование серии if (без elseif/else) может быть более эффективным (вполне возможно тут надо будет row-обертки делать, например). Опять же, матчасть. Return early и прочие грамотности.
Игорь Воротнёв, таксономии конечно же)
Только сейчас понял, насколько некорретно написал про wp_query, конечно же под кастомностью я имел в виду параметры)
Использование серии if (без elseif/else) может быть более эффективным (вполне возможно тут надо быть row-обертки делать, например). Опять же, матчасть. Return erly и прочие грамотности.