HTML-карта сайта — это модуль, который выводит на странице понятный список материалов сайта: записей, страниц, рубрик, меток и других разделов.
Проще говоря, это обычная страница-карта сайта для людей, а не для поисковых систем. Она помогает посетителю быстро найти нужный материал, особенно если на сайте много контента.
Как работает модуль
Модуль выводится с помощью шорткода. Вы добавляете шорткод на нужную страницу — и на ней появляется HTML-карта сайта.
В карту сайта можно вывести:
- типы записей — например, обычные записи, страницы или публичные произвольные типы записей;
- таксономии — например, рубрики, метки и другие публичные таксономии;
- записи внутри терминов — например, статьи внутри рубрик, если эта опция включена.
Если материалов на сайте много, модуль автоматически разбивает список на страницы. Это нужно для того, чтобы карта сайта не превращалась в слишком длинную и неудобную простыню.
Как добавить карту сайта
Чтобы вывести HTML-карту сайта, добавьте на страницу шорткод:
[html_sitemap]
Также поддерживается старый вариант шорткода:
[htmlsitemap]
Если вы новичок в WordPress, просто создайте или откройте нужную страницу и вставьте этот шорткод:
- в блок Шорткод, или
- в обычный текстовый блок, если шорткоды на сайте в нем обрабатываются.
После сохранения страницы карта сайта появится на фронтенде.
Где находятся настройки
Основные настройки модуля находятся в разделе:
Внешний вид > Настроить > Модули > Карта сайта
Здесь можно задать поведение карты сайта по умолчанию: что показывать, что скрывать и какие дополнительные типы записей подключать.
Важно: настройки из этого раздела работают как базовые. Если на конкретной странице вы используете параметры шорткода, они могут переопределить глобальные настройки.
Исключить рубрики по ID
Эта настройка позволяет скрыть отдельные рубрики из HTML-карты сайта.
Укажите ID рубрик через запятую, например:
12,34,56
Если вы не знаете ID рубрики, его можно посмотреть в админке WordPress или с помощью специальных плагинов/подсказок для администратора.
Исключить записи по ID
Эта настройка скрывает из карты сайта материалы по их ID.
Важно понимать, что она работает для всех типов записей сразу. Сюда можно указывать ID:
- обычных записей;
- страниц;
- публичных произвольных типов записей.
Показывать страницы
Эта опция включает или отключает вывод обычных страниц WordPress в карте сайта по умолчанию.
Если опция выключена, страницы не будут показываться, если только вы не укажете их явно через параметры шорткода.
Показывать записи в терминах
Эта настройка отвечает за то, показывать ли записи внутри рубрик, меток и других терминов.
Например:
- если опция выключена — посетитель увидит только список рубрик;
- если опция включена — посетитель увидит рубрики и записи, которые в них входят.
Это удобно, если вы хотите сделать карту сайта более подробной.
Другие типы записей
В блоке Другие типы записей можно подключить дополнительные публичные типы записей.
Например, если на сайте используется WooCommerce, здесь можно включить вывод товаров.
Для каждого типа записи обычно доступны:
- отдельный переключатель включения;
- поле со списком таксономий, которые нужно выводить вместе с этим типом записи.
Параметры шорткода
Шорткод
[html_sitemap] поддерживает параметры. Они позволяют настроить карту сайта точечно — только для той страницы, где вставлен шорткод.
Это особенно удобно, если вам нужно:
- на одной странице показать полную карту сайта;
- на другой — только рубрики;
- на третьей — только страницы или определенный тип записей.
Доступные параметры:
- post_types — список типов записей через запятую, например
post,page,product; - taxonomies — список таксономий через запятую, например
category,post_tag; - show_post_types — показывать ли блоки с типами записей;
- show_taxonomies — показывать ли блоки с таксономиями;
- show_posts_in_terms — показывать ли записи внутри терминов;
- posts_per_page — сколько записей выводить на одной странице внутри блока типа записей;
- terms_per_page — сколько терминов выводить на одной странице внутри блока таксономии;
- term_posts_per_page — сколько записей выводить внутри одного термина на одной странице;
- order — направление сортировки:
ASCилиDESC; - orderby — поле сортировки;
- hide_empty_terms — скрывать ли пустые термины.
post_types
Параметр post_types задает, какие типы записей нужно показать в карте сайта.
[html_sitemap post_types="post,page"]
В примере выше будут показаны только обычные записи и страницы.
Если параметр не указан, модуль берет значения из глобальных настроек: обычно это
post, при необходимости page и дополнительные включенные типы записей.
taxonomies
Параметр taxonomies задает, какие таксономии показывать в карте сайта.
[html_sitemap taxonomies="category,post_tag"]
В этом примере будут показаны рубрики и метки.
show_post_types
Параметр show_post_types включает или выключает вывод блоков с типами записей.
[html_sitemap show_post_types="1"]
[html_sitemap show_post_types="0"]
Используйте:
1— чтобы показывать блоки с записями и страницами;0— чтобы скрыть их.
show_taxonomies
Параметр show_taxonomies включает или выключает вывод блоков с таксономиями.
[html_sitemap show_taxonomies="1"]
[html_sitemap show_taxonomies="0"]
Используйте этот параметр, если хотите, например, оставить только записи и скрыть рубрики и метки.
show_posts_in_terms
Параметр
show_posts_in_terms управляет выводом записей внутри терминов и может переопределять глобальную настройку из кастомайзера.
[html_sitemap taxonomies="category" show_posts_in_terms="1"]
В этом примере будут показаны рубрики и записи внутри них.
Параметры пагинации
Параметры posts_per_page, terms_per_page и
term_posts_per_page отвечают за количество элементов на одной странице.
[html_sitemap posts_per_page="20" terms_per_page="20" term_posts_per_page="10"]
Это полезно для больших сайтов. Если элементов слишком много, лучше не выводить их все сразу, а разбить на несколько страниц.
Сортировка
Параметры order и orderby позволяют управлять сортировкой записей и терминов.
[html_sitemap post_types="post" orderby="date" order="DESC"]
В этом примере записи будут отсортированы по дате, от новых к старым.
Доступные значения:
- для записей:
title,name,date,menu_order; - для терминов:
name,slug,term_id,count.
hide_empty_terms
Параметр hide_empty_terms скрывает пустые термины, в которых нет записей.
[html_sitemap hide_empty_terms="1"]
[html_sitemap hide_empty_terms="0"]
Обычно значение
1 делает карту сайта чище и понятнее, если вы не хотите показывать пустые рубрики или метки.
Готовые примеры
Ниже — несколько готовых вариантов для самых частых задач.
Только записи и страницы
[html_sitemap post_types="post,page" show_taxonomies="0"]
Покажет только записи и страницы, без рубрик и меток.
Только рубрики
[html_sitemap taxonomies="category" show_post_types="0"]
Покажет только рубрики.
Рубрики вместе с записями внутри них
[html_sitemap taxonomies="category" show_post_types="0" show_posts_in_terms="1"]
Подойдет, если вы хотите сделать удобный каталог материалов по рубрикам.
Карта сайта для большого проекта
[html_sitemap posts_per_page="20" terms_per_page="20" term_posts_per_page="10"]
Хороший вариант для сайтов с большим количеством страниц, записей или терминов.
Хуки для разработчика
Если стандартных настроек недостаточно, модуль можно дополнительно расширять через фильтры.
html_sitemap/excluded_post_ids— исключает отдельные записи из карты сайта;html_sitemap/excluded_taxonomies— исключает отдельные таксономии из карты сайта;html_sitemap/excluded_term_ids— исключает отдельные термины из карты сайта.
Эти хуки нужны для кастомной доработки в коде темы или плагина. Если вы просто наполняете сайт контентом, этот раздел можно пропустить.
Настройка внешнего вида
Если нужно подстроить HTML-карту сайта под дизайн проекта, можно использовать CSS-переменные:
--wpbox-html-sitemap-gap: 1.5rem; /* задает вертикальный отступ между секциями карты сайта */
--wpbox-html-sitemap-accent: var(--wpbox-color-accent, currentColor); /* управляет цветом ссылок при наведении и фокусе */