Как сделать список дней недели с активным днем?
Как сделать Ссылка удалена модератором.
В футере дни недели с активным днем
Дополнительно:
Не надо ставить как можно больше тэгов. Лучше оставить один, но конкретный, с которым проблема.
См.п.3.1 Регламента. Также обратите внимание на п.5.7
upd:
<?php $week_day = [ 1 => 'ПН', 2 => 'ВТ', 3 => 'СР', 4 => 'ЧТ', 5 => 'ПТ', 6 => 'СБ', 7 =>'ВС' ]; foreach ($week_day as $key => $day) { ?> <div class="item <?php echo ($key == wp_date('N') ? 'current_day' : '') ?>"><?php echo $day; ?></div> <?php } ?> |
<?php $week_day = [ 1 => 'ПН', 2 => 'ВТ', 3 => 'СР', 4 => 'ЧТ', 5 => 'ПТ', 6 => 'СБ', 7 =>'ВС' ]; foreach ($week_day as $key => $day) { ?> <div class="item <?php echo ($key == wp_date('N') ? 'current_day' : '') ?>"><?php echo $day; ?></div> <?php } ?>
- ну допустим вот список
<div class="footer-wrap__contacts--list"> <div class="item">НД</div> <div class="item">ПН</div> <div class="item">ВТ</div> <div class="item">СР</div> <div class="item">ЧТ</div> <div class="item">ПТ</div> <div class="item">СБ</div> </div>
<div class="footer-wrap__contacts--list"> <div class="item">НД</div> <div class="item">ПН</div> <div class="item">ВТ</div> <div class="item">СР</div> <div class="item">ЧТ</div> <div class="item">ПТ</div> <div class="item">СБ</div> </div>
А как мне curent подставить?? извините не въехал
это условие не понимаю к чему
if(wp_date('N') == 7) { echo 'current_day'; }
if(wp_date('N') == 7) { echo 'current_day'; }
- Спасибо!
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос

Список дней недели с активным текущим днём можно сделать на PHP при рендере страницы или на JavaScript в браузере. Если сайт должен учитывать часовой пояс WordPress, лучше использовать PHP и функцию
current_time(), а не системное время сервера.$days = [ 1 => 'Понедельник', 2 => 'Вторник', 3 => 'Среда', 4 => 'Четверг', 5 => 'Пятница', 6 => 'Суббота', 7 => 'Воскресенье', ]; $current_day = (int) current_time('N'); echo '<ul class="week-days">'; foreach ($days as $number => $label) { $class = $number === $current_day ? ' class="is-active"' : ''; echo '<li' . $class . '>' . esc_html($label) . '</li>'; } echo '</ul>';
CSS для активного дня:
.week-days { display: flex; gap: 8px; list-style: none; margin: 0; padding: 0; } .week-days li { padding: 6px 10px; } .week-days .is-active { font-weight: 700; background: #f1f5f9; }
Если страница сильно кэшируется, PHP может отдать вчерашний активный день до сброса кэша. Тогда активный класс лучше ставить JavaScript-ом на стороне пользователя:
const day = new Date().getDay() || 7; document.querySelector('[data-day="' + day + '"]')?.classList.add('is-active');const day = new Date().getDay() || 7; document.querySelector('[data-day="' + day + '"]')?.classList.add('is-active');
Для расписания организации чаще лучше привязываться к часовому поясу сайта, а не к компьютеру пользователя. Поэтому PHP-вариант через
current_time('N')обычно правильнее для WordPress.Для футера лучше не хранить активный день руками в HTML, а всегда считать его на сервере. Тогда завтра класс сам переедет на следующий элемент. Если сайт работает по московскому времени, проверьте часовой пояс в настройках WordPress: Настройки -> Общие -> Часовой пояс. Функция
wp_date('N')вернёт номер дня недели от 1 до 7, где 1 — понедельник, 7 — воскресенье.$days = [ 1 => 'ПН', 2 => 'ВТ', 3 => 'СР', 4 => 'ЧТ', 5 => 'ПТ', 6 => 'СБ', 7 => 'ВС', ]; $today = (int) wp_date('N'); foreach ($days as $num => $label) { $class = $num === $today ? ' item--active' : ''; echo '<div class="item' . esc_attr($class) . '">' . esc_html($label) . '</div>'; }
Если у вас в вёрстке неделя начинается с воскресенья, просто поменяйте порядок массива, но ключи оставьте правильными. Не сравнивайте текст дня вроде
ПНс текущей датой: это неудобно для локализации и легко ломается из-за регистра или сокращений.