Мне нужно иметь чередующийся (четный, нечетный…) класс для сообщений, чтобы обеспечить альтернативное выделение в столбце. Лучше всего было бы прикрепить это к post_class(), чтобы оно было в каждом экземпляре post_class(). Ниже приведен код, который у меня есть на данный момент для достижения этого эффекта.
<?php
// setting other variables for alternating categories
$style_classes = array('even', 'odd');
$style_counter = 0;
?>
<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
<div class="<?php $k = $style_counter%2; echo $style_classes[$k]; $style_counter++; ?>">
<?php the_cotent(); ?>
</div>
<?php endwhile; ?>
<?php endif; ?>
Вы должны добавить следующий код в
functions.php
:Это гарантирует, что все нечетные сообщения на странице будут иметь класс «нечетный», а все четные сообщения будут иметь класс «четный», просто используя
post_class()
в вашей теме.Да, это всего лишь вариант решения выше. Возможно, я не совсем ясно выразился, но я ищу решение, которое будет храниться в файле functions.php, а затем просто передавать его в любое приложение post_class(). Тогда мне не нужно изменять все отдельные экземпляры циклов, где мне это нужно.
Обновил мой ответ решением, которое работает для меня.
Успешно справился! Хорошая работа, Марко.
Это работает, он переходит в дополнительный класс в
post_class()
:РЕДАКТИРОВАТЬ: вот способ, который создает версию
post_class()
, которая будет отслеживать количество на странице. Теперь он будет использовать новое имя,oddeven_post_class()
но оно работает так, как вы хотите. Все, что вам нужно сделать, это поместить это вfunctions.php
:Так что, чтобы назвать это, используйте
post_class_oddeven()
в своей теме, где бы вы ни называлиpost_class()
У меня есть другое решение, если вы хотите добавить определенный класс к другому контенту. Например, только для цикла:
Потому что вы не хотите добавлять класс «четный» или «нечетный» при отображении одного содержимого.
Вы можете сделать это с помощью прямого css. Например, в теме двадцать семнадцать, где цикл находится в div «main»:
будет делать свое дело.