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はこれを外してくれた

アコーディオンが開閉される仕組み

こちらについて気になるところだが、次の記事で書いていこう