пр. Мира 620000 Россия +7900-000-00-00
Логотип блога интернет-бродяги

Оглавление с подпунктами на сайте

Динамическое оглавление с подпунктами на сайте

Последнее обновлене - 29 октября 2024 в 15:56

В этой заметке остановлюсь на том, как сделать оглавление с подпунктами на сайте без плагина. Это будет расширенная версия кода, который позволяет внедрить оглавление с одними только пунктами.

При помощи нового кода, на сайте WordPress в записях будет появляться оглавление, если в этих записях будут присутствовать подзаголовки, обозначаемые тегами H2 и H3. Кроме того, оглавление должно открываться при клике на него и закрываться (сворачиваться). Также мне нужна плавная прокрутка до подзаголовков при клике по пункту в оглавлении.

Для добавления оглавления к записям WordPress, если в них присутствуют заголовки H2 и H3, и чтобы оглавление можно было сворачивать/разворачивать при клике, а также обеспечить плавную прокрутку до подзаголовков при клике по пункту оглавления, нужно сделать следующее:

  • Добавить JavaScript для генерации оглавления и функционала сворачивания/разворачивания.
  • Добавить CSS для стилизации оглавления и его фона.
  • Добавить PHP код, чтобы подключить скрипты и стили к записям WordPress.

Шаг 1: JavaScript. Создадим JavaScript-файл table-of-contents.js:

Шаг 2: CSS. Создадим CSS-файл table-of-contents.css:

Шаг 3: PHP. Добавим PHP код в файл темы WordPress (например, functions.php), чтобы подключить наши скрипты и стили:

Финальная настройка состоит в следующем:

  1. Создадим папки js и css в корневом каталоге рабочей темы WordPress (если они ещё не существуют).
  2. Сохраним JavaScript-файл в папку js под именем table-of-contents.js.
  3. Сохраним CSS-файл в папку css под именем table-of-contents.css.
  4. Добавим PHP-код в functions.php рабочей темы.

Такое оглавление будет выводиться в самом начале поста, перед текстом. В том случае, если требуется установить оглавление после первого абзаца текста, нужно немного изменить JavaScript-код.

Посмотрим на модифицированный JavaScript-файл table-of-contents.js. Вот как будет выглядеть обновленный код:

Объяснение изменений: вместо того чтобы добавлять оглавление в начало .entry-content, мы находим первый абзац с помощью document.querySelector(«.entry-content p») и используем метод insertAdjacentElement(‘afterend’, toc), чтобы вставить оглавление сразу после первого абзаца.

Теперь при просмотре записей WordPress, если они содержат подзаголовки H2 и H3, будет автоматически генерироваться оглавление с возможностью сворачивания/разворачивания и плавной прокруткой к подзаголовкам при клике.

ytprevyu

Всем WEB!

Друзья, плюсаните, вдруг пригодится!

Почитайте похожие материалы

Об авторе: Hobo

Стараюсь всё делать своими собственными руками: от починки выключателя до создания веб-сайта. В этом блоге делюсь своим опытом и впечатлениями от использования различной техники, электронных и других устройств, которые побывали у меня в руках.

2 Comments

  1. Елена:

    Ух ты, надо попробовать с подпунктами оглавление.

    1. Напишите потом, получилось или нет.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *