Как отслеживать номер сообщения в цикле


Мне нужно настроить некоторые сообщения из цикла.
Вот в чем дело: мой сайт настроен на 10 сообщений на страницу. В сообщениях № 2, № 5, № 7 (на каждой странице) я хочу отобразить определенный фон. Какое лучшее решение для такого рода проблем?

Author: ariefbayu, 2010-12-16

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;, используйте его до начала цикла.

 2
Author: John P Bloch, 2010-12-16 16:20:07

Один из способов справиться с этим - использовать псевдоклассы CSS. С положительной стороны, это удерживает вас от принятия жестких решений в вашем циклическом коде, с другой стороны, это не будет работать в старых/сломанных браузерах, т. Е. MSIE 6.

Div#содержание div.сообщение: n-й ребенок (2), div#содержание div.сообщение: n-й ребенок (5), div#содержание div.сообщение: n-й ребенок(7){ цвет фона: #FF0; }

Если вам нравится этот подход, но он должен работать во всех браузерах, то вы можете сделать это в jQuery. Хотя я стараюсь, чтобы основные элементы дизайна изящно деградировали, когда я имею дело с динозаврами, такими как IE6, я перестал обслуживать их для подобных вещей. Большинство его пользователей либо находятся в корпоративных локальных сетях, либо являются сильно отстающими конечными пользователями, ни один из которых не входит в нашу основную демографию.

 0
Author: Peter Rowell, 2010-12-16 17:26:45