Иерархия в записях WordPress плагин

Что такое 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

  1. Войдите в панель администратора
  2. Перейдите: Плагины → Добавить новый → Загрузить плагин
  3. Нажмите «Выберите файл» и загрузите hierarchical-posts.zip
  4. Нажмите «Установить», затем «Активировать плагин»
  5. Перейдите в Настройки → Постоянные ссылки и нажмите «Сохранить» — это обязательный шаг после любого изменения типов записей

Вариант Б — через FTP

  1. Распакуйте ZIP-архив — получите папку hierarchical-posts/
  2. Загрузите папку в /wp-content/plugins/
  3. В панели WordPress: Плагины → Hierarchical Posts Manager → Активировать
  4. Обновите постоянные ссылки: Настройки → Постоянные ссылки → Сохранить

После активации в боковом меню 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 ); ?>

Поля можно добавлять и редактировать в любой момент — существующие записи это не затронет.


Работа с иерархическими записями

Создание родительской записи

  1. Перейдите в созданный тип через боковое меню WordPress
  2. Нажмите «Добавить новый»
  3. Заполните заголовок и контент
  4. В блоке «Атрибуты записи» оставьте поле «Родитель» пустым
  5. Опубликуйте запись

Создание дочерней записи

  1. Нажмите «Добавить новый»
  2. Заполните заголовок и контент
  3. В блоке «Атрибуты записи» в поле «Родитель» выберите нужную запись
  4. Опубликуйте

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 не удаляются.

 

Подождите немного...

Кнопка скачивания появится через 20 секунд

🎯 Здесь может быть ваша реклама

Настройте баннер в параметрах плагина

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