Как создать иерархию динамических блоков на странице WordPress

|

В современных проектах на WordPress часто возникает необходимость создавать сложные иерархические структуры контента, которые удобно управлять и визуально отображать на страницах. В частности, динамические блоки — это отличный способ структурировать информацию гибко и удобно для пользователей и администраторов.

Что такое иерархия динамических блоков в WordPress и зачем она нужна

Иерархия динамических блоков — это вложенная структура контентных элементов, которые можно добавлять, удалять и менять местами прямо на странице, без необходимости править код. Например, блоки могут представлять разделы, подразделы, карточки товаров, отзывы с вложенными комментариями и многое другое. Такая иерархия позволяет создавать страницы с продуманной навигацией и логикой.

Обычные редакторы WordPress (например, Gutenberg) поддерживают блоки, но не всегда удобна работа с глубоко вложенными структурами и динамическим управлением вложенностью. Решение — написать свой функционал с помощью кастомных типов блоков, мета-полей и JavaScript.

Плагины для создания иерархии динамических блоков

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

Для динамического управления отображением блоков полезно использовать JavaScript и REST API WordPress.

Как создать иерархию динамических блоков своими руками через код

Рассмотрим пример создания кастомного мета-поля с вложенными блоками и их иерархией на странице редактирования записи.

1. Регистрируем мета-поле с помощью функции wphierarchy_register_meta_blocks():

function wphierarchy_register_meta_blocks() {
  register_post_meta('page', 'wphierarchy_dynamic_blocks', [
    'show_in_rest' => true,
    'single' => true,
    'type' => 'array',
    'default' => []
  ]);
}
add_action('init', 'wphierarchy_register_meta_blocks');

2. Создаем React-компонент для Gutenberg, который позволит добавлять, удалять, изменять вложенные блоки с поддержкой иерархии. Для простоты — используем NestedSortable List.

3. В PHP выводим иерархию на фронтенде с помощью рекурсивной функции wphierarchy_render_blocks():

function wphierarchy_render_blocks($blocks) {
  if (empty($blocks)) return '';
  $html = '<ul>';
  foreach ($blocks as $block) {
    $html .= '<li>' . esc_html($block['title']);
    if (!empty($block['children'])) {
      $html .= wphierarchy_render_blocks($block['children']);
    }
    $html .= '</li>';
  }
  $html .= '</ul>';
  return $html;
}

4. Добавьте вызов этой функции в шаблон страницы:

$blocks = get_post_meta(get_the_ID(), 'wphierarchy_dynamic_blocks', true);
echo wphierarchy_render_blocks($blocks);

Пример структуры данных для иерархии блоков

Иерархия хранится в мета-поле как массив с вложенными элементами:

[
  [
    'id' => 1,
    'title' => 'Раздел 1',
    'children' => [
      ['id' => 2, 'title' => 'Подраздел 1.1', 'children' => []],
      ['id' => 3, 'title' => 'Подраздел 1.2', 'children' => []],
    ]
  ],
  [
    'id' => 4,
    'title' => 'Раздел 2',
    'children' => []
  ]
]

Такую структуру легко сериализовать в JSON и сохранить в мета-поле.

Управление иерархией через интерфейс администратора

Для удобства пользователей можно интегрировать React-библиотеки, например, react-sortable-tree, чтобы на странице редактирования записи была визуальная иерархическая структура с drag-and-drop.

Передача и сохранение данных сделаны через REST API WordPress, что позволяет работать с вложенными блоками без перезагрузки страницы.

Советы по оптимизации и безопасности

При работе с иерархическими данными важно:

Вывод

Создание иерархии динамических блоков на странице WordPress — задача технически не самая простая, но вполне решаемая с помощью комбинации кастомных мета-полей, REST API и React-компонентов. Такой подход дает гибкость в управлении контентом и улучшает UX сайта.

Для удобства можно использовать плагины вроде Clearfy Pro, которые расширяют возможности управления контентом и оптимизации.

Как удалить пустое разделение в иерархии WordPress: практическое руководство
11.04.2026
Как реализовать иерархию с нюансами в WordPress с помощью мета-полей
15.01.2026
Как создать и использовать иерархию пользователей в WordPress для управления доступом
15.12.2025
Как создать иерархию пользовательских ролей в WordPress для управления доступом
25.12.2025
WooCommerce: решение сложностей с иерархией товаров и автоматическим присвоением категорий
30.04.2026
×
Оптимизируй свой сайт!

Скидка -15% на премиум плагин Clearfy Pro

Купить плагин сейчас ⋙