Как отслеживать номер сообщения в цикле
Мне нужно настроить некоторые сообщения из цикла.
Вот в чем дело: мой сайт настроен на 10 сообщений на страницу.
В сообщениях № 2, № 5, № 7 (на каждой странице) я хочу отобразить определенный фон.
Какое лучшее решение для такого рода проблем?
2 answers
Это должно сделать это:
$real_current_post = $wp_query->current_post + 1;
switch( $real_current_post ){
case 2:
// Do something for 2
break;
case 5:
// Do something for 5
break;
case 7:
// Do something for 7
break;
}
Возможно, вам потребуется глобализировать $wp_query, но пока вы используете обычную иерархию шаблонов, она уже должна быть в области действия. Если вы используете global $wp_query;
, используйте его до начала цикла.
Один из способов справиться с этим - использовать псевдоклассы CSS. С положительной стороны, это удерживает вас от принятия жестких решений в вашем циклическом коде, с другой стороны, это не будет работать в старых/сломанных браузерах, т. Е. MSIE 6.
Div#содержание div.сообщение: n-й ребенок (2), div#содержание div.сообщение: n-й ребенок (5), div#содержание div.сообщение: n-й ребенок(7){ цвет фона: #FF0; }
Если вам нравится этот подход, но он должен работать во всех браузерах, то вы можете сделать это в jQuery. Хотя я стараюсь, чтобы основные элементы дизайна изящно деградировали, когда я имею дело с динозаврами, такими как IE6, я перестал обслуживать их для подобных вещей. Большинство его пользователей либо находятся в корпоративных локальных сетях, либо являются сильно отстающими конечными пользователями, ни один из которых не входит в нашу основную демографию.