Что такое Hierarchical Posts Manager
Hierarchical Posts Manager — плагин для WordPress, который позволяет создавать произвольные типы записей с иерархической структурой. В отличие от стандартных записей, дочерние страницы отражают вложенность прямо в URL:
site.com/catalog/electronics/smartphones/iphone-15/
Каждый уровень — отдельная запись, связанная с родителем. Вложенность не ограничена.



Системные требования
- WordPress 5.5 или новее
- PHP 7.4 или новее
- Права администратора на сайте
- Постоянные ссылки: любой вариант кроме «Простые»
Важно: если в Настройки → Постоянные ссылки выбран вариант «Простые» (?p=123), иерархические URL работать не будут. Переключитесь на любой другой вариант, например «Название записи».
Установка плагина
Вариант А — через панель WordPress
- Войдите в панель администратора
- Перейдите: Плагины → Добавить новый → Загрузить плагин
- Нажмите «Выберите файл» и загрузите
hierarchical-posts.zip - Нажмите «Установить», затем «Активировать плагин»
- Перейдите в Настройки → Постоянные ссылки и нажмите «Сохранить» — это обязательный шаг после любого изменения типов записей
Вариант Б — через FTP
- Распакуйте ZIP-архив — получите папку
hierarchical-posts/ - Загрузите папку в
/wp-content/plugins/ - В панели WordPress: Плагины → Hierarchical Posts Manager → Активировать
- Обновите постоянные ссылки: Настройки → Постоянные ссылки → Сохранить
После активации в боковом меню WordPress появится пункт «Иерар. записи».
Создание типа записей
Перейдите в Иерар. записи → + Добавить. Откроется форма с тремя блоками.
Основные поля
- Название (ед. число) — например: Статья, Продукт, Раздел. Отображается в редакторе.
- Название (мн. число) — например: Статьи, Продукты, Разделы. Отображается в меню.
- Ключ (post type key) — уникальный идентификатор: только строчные латинские буквы, цифры и символ
_, максимум 20 символов. Например:catalog,kb_article. После сохранения изменить нельзя. - URL Slug — фрагмент адреса. Если ключ
catalog, а слагproducts, то URL будетsite.com/products/…/…/. Если оставить пустым — используется ключ. - Иконка — название из библиотеки Dashicons, например
dashicons-portfolio. Отображается в боковом меню.
Доступные функции
| Функция | Описание |
|---|---|
| 🖼 Миниатюра записи | Добавляет поддержку featured image в редактор записи |
| ✂️ Краткое содержание | Поле excerpt — анонс для архивов и RSS |
| 💬 Комментарии | Возможность оставлять комментарии к записям |
| 📦 Архивная страница | Отдельная страница со списком всех записей типа |
| 🔌 REST API | Доступ к записям через /wp-json/wp/v2/ |
| 🔗 Хлебные крошки | Автоматическая вставка навигации перед контентом |
| 🏷 Open Graph теги | Мета-теги og:title, og:image для соцсетей (если не установлен Yoast или Rank Math) |
| 📝 SEO: родитель в title | Добавляет название родительской записи в тег <title> |
| 🗺 Sitemap | Включает тип в XML-карту сайта (WP core, Yoast, Rank Math, AIOSEO) |
Произвольные мета-поля
В разделе «Произвольные мета-поля» можно добавить любые дополнительные поля. Они появятся в редакторе каждой записи этого типа в блоке «Дополнительные поля».
Доступные типы полей:
| Тип | Название | Пример использования |
|---|---|---|
text |
Однострочный текст | Название, артикул, автор |
textarea |
Многострочный текст | Описание, примечания |
number |
Число | Цена, вес, количество |
url |
Ссылка | Источник, сайт товара |
date |
Дата | Дата публикации, дедлайн |
checkbox |
Флажок (вкл/выкл) | Рекомендуемое, срочное |
Ключ поля (например price) сохраняется в базе данных как _hpm_price. Получить значение в шаблоне темы:
<?php echo get_post_meta( get_the_ID(), '_hpm_price', true ); ?>
Поля можно добавлять и редактировать в любой момент — существующие записи это не затронет.
Работа с иерархическими записями
Создание родительской записи
- Перейдите в созданный тип через боковое меню WordPress
- Нажмите «Добавить новый»
- Заполните заголовок и контент
- В блоке «Атрибуты записи» оставьте поле «Родитель» пустым
- Опубликуйте запись
Создание дочерней записи
- Нажмите «Добавить новый»
- Заполните заголовок и контент
- В блоке «Атрибуты записи» в поле «Родитель» выберите нужную запись
- Опубликуйте
URL дочерней записи автоматически примет вид:
site.com/slug/родительская-запись/дочерняя-запись/
Вложенность не ограничена — можно создавать /раздел/подраздел/статья/ и глубже.
Блок «Атрибуты записи» не виден? Откройте редактор, нажмите «Параметры экрана» в правом верхнем углу и поставьте галочку рядом с «Атрибуты записи».
SEO и Sitemap
XML-карта сайта
При включённой функции «Sitemap» тип записей автоматически попадает в карты сайта следующих плагинов и встроенного механизма WordPress:
- WordPress core sitemap (5.5+) —
site.com/wp-sitemap.xml - Yoast SEO — если плагин установлен
- Rank Math — если плагин установлен
- All in One SEO — если плагин установлен
Хлебные крошки
При включённой функции «Хлебные крошки» плагин автоматически вставляет навигацию перед контентом каждой записи:
Главная › Тип записей › Родительская запись › Текущая запись
Стили можно переопределить в CSS темы через класс .hpm-breadcrumbs.
Open Graph теги
Если включить «Open Graph теги», плагин добавит в <head> мета-теги og:title, og:description, og:url и og:image (из миниатюры). Если на сайте установлен Yoast SEO или Rank Math, плагин уступает им приоритет и не дублирует теги.
Интеграция с темой
Шаблон для типа записей
WordPress ищет шаблон по имени single-КЛЮЧ.php в папке темы. Пример для ключа article:
<?php
// themes/ваша-тема/single-article.php
get_header();
while ( have_posts() ) : the_post();
the_title( '<h1>', '</h1>' );
the_content();
endwhile;
get_footer();
Получение мета-поля
<?php
$price = get_post_meta( get_the_ID(), '_hpm_price', true );
if ( $price ) {
echo '<p>Цена: ' . esc_html( $price ) . '</p>';
}
Запрос дочерних записей
<?php
$children = get_posts([
'post_type' => 'article',
'post_parent' => get_the_ID(),
'numberposts' => -1,
'orderby' => 'menu_order',
'order' => 'ASC',
]);
foreach ( $children as $child ) {
echo ‘<li><a href=»‘ . get_permalink( $child ) . ‘»>’
. esc_html( $child->post_title ) . ‘</a></li>’;
}
Частые вопросы
После создания типа страница отдаёт 404
Перейдите в Настройки → Постоянные ссылки и нажмите «Сохранить» — это обновляет правила rewrite. Нужно делать каждый раз после добавления нового типа.
URL не отражает иерархию
Убедитесь, что при редактировании дочерней записи в блоке «Атрибуты записи» указан родитель.
Мета-поля не сохраняются
Проверьте, что ключ поля содержит только строчные латинские буквы, цифры и символ _. Кириллица и пробелы недопустимы.
Тип исчез после деактивации плагина
Это ожидаемое поведение: без плагина WordPress не знает о типе и не регистрирует его маршруты. Записи в базе данных остаются нетронутыми — после повторной активации всё вернётся.
Можно ли удалить тип записей с сохранением данных?
Да. При удалении типа через кнопку «Удалить» в списке плагин удаляет только регистрацию типа. Записи из таблицы wp_posts не удаляются.
⚠ Для скачивания необходима авторизация
Войти на сайт
