2026.06.25(木) / 05:24
アコーディオンの開閉をどこで設定しているか?
- ID
- 38430
- Published
- 2026-06-25 05:24
- Modified
- 2026-06-25 05:24
- Author
- khiro
- Categories
- デフォルト
現状、全部のアコーディオンが開いている

最新の記事の数に合わせて、全部のアコーディオンを閉じたいと思った
現状アコーディオンの構造
sidebar-not-single.phpの36行目〜50行目に記述している
foreach ($archives_by_year as $year => $months) {
echo '<li class="archive-year-item">';
echo '<details class="archive-year" open>';
echo '<summary>' . esc_html(sprintf('%d年', $year)) . '</summary>';
echo '<ul class="archive-month-list">';
foreach (array_unique($months) as $month) {
$url = get_month_link($year, $month);
echo '<li><a href="' . esc_url($url) . '">' . esc_html(sprintf('%d月', $month)) . '</a></li>';
}
echo '</ul>';
echo '</details>';
echo '</li>';
}
?>
details.archive-yearがopenになっている

これをcloseにするには、どうすればいいのか
優秀なエンジニア「codex」に尋ねる
この仕組みを作った張本人である「codex」に聞くのが手っ取り早い
即対応してくれた

自分もこのスピード感で仕事していこう

自分の頭で理解する
アコーディオンの初期開閉は現状アコーディオンの構造でお話した通り、open属性によって決まっていた
foreach ($archives_by_year as $year => $months) {
echo '<li class="archive-year-item">';
echo '<details class="archive-year" open>';
echo '<summary>' . esc_html(sprintf('%d年', $year)) . '</summary>';
echo '<ul class="archive-month-list">';
foreach (array_unique($months) as $month) {
$url = get_month_link($year, $month);
echo '<li><a href="' . esc_url($url) . '">' . esc_html(sprintf('%d月', $month)) . '</a></li>';
}
echo '</ul>';
echo '</details>';
echo '</li>';
}
?>
codexはこれを外してくれた

アコーディオンが開閉される仕組み
こちらについて気になるところだが、次の記事で書いていこう