Как создать управляемые списки в WordPress: пошаговое руководство

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

Что такое управляемые списки и зачем они нужны в WordPress

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

Главные преимущества управляемых списков:

  • Легкость редактирования через админку без изменения кода.
  • Возможность интеграции с другими функциями сайта.
  • Гибкость в отображении и кастомизации.

Рассмотрим, как это реализовать на практике.

Создание управляемых списков с помощью собственного кода

Создание кастомного типа записи для списка

Первый шаг — создать кастомный тип записи (Custom Post Type, CPT), который будет хранить элементы списка. Это позволит удобно управлять каждым пунктом через стандартный интерфейс WordPress.

function wplink_register_list_item_cpt() {
  $args = array(
    'labels' => array(
      'name' => 'Элементы списка',
      'singular_name' => 'Элемент списка',
    ),
    'public' => true,
    'show_in_menu' => true,
    'supports' => array('title', 'editor'),
    'has_archive' => false,
  );
  register_post_type('wplink_list_item', $args);
}
add_action('init', 'wplink_register_list_item_cpt');

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

Вывод списка на странице с помощью шорткода

Чтобы отобразить список на любой странице, создадим шорткод, который выведет все элементы типа wplink_list_item.

function wplink_list_shortcode() {
  $args = array(
    'post_type' => 'wplink_list_item',
    'posts_per_page' => -1,
    'orderby' => 'date',
    'order' => 'ASC',
  );

  $query = new WP_Query($args);
  if (!$query->have_posts()) {
    return '<p>Список пуст.</p>';
  }

  $output = '<ul class="wplink-list">';
  while ($query->have_posts()) {
    $query->the_post();
    $output .= '<li>' . get_the_title() . '</li>';
  }
  $output .= '</ul>';

  wp_reset_postdata();
  return $output;
}
add_shortcode('wplink_list', 'wplink_list_shortcode');

Добавьте шорткод [wplink_list] на страницу — и вы увидите список из всех элементов, которые создали в админке.

Добавление метаполей для расширения функционала списка

Для каждого элемента списка можно добавить дополнительные поля, например, описание или ссылку. Для этого используйте функцию add_meta_box:

function wplink_add_list_item_metabox() {
  add_meta_box('wplink_list_details', 'Детали элемента списка', 'wplink_list_metabox_callback', 'wplink_list_item');
}
add_action('add_meta_boxes', 'wplink_add_list_item_metabox');

function wplink_list_metabox_callback($post) {
  $description = get_post_meta($post->ID, '_wplink_description', true);
  echo '<label for="wplink_description">Описание:</label>';
  echo '<textarea id="wplink_description" name="wplink_description" rows="4" style="width:100%;">' . esc_textarea($description) . '</textarea>';
}

function wplink_save_list_item_metabox($post_id) {
  if (array_key_exists('wplink_description', $_POST)) {
    update_post_meta($post_id, '_wplink_description', sanitize_textarea_field($_POST['wplink_description']));
  }
}
add_action('save_post', 'wplink_save_list_item_metabox');

Затем в шорткоде можно выводить описание рядом с каждым пунктом списка.

Использование плагинов для создания управляемых списков

Плагин Advanced Custom Fields (ACF)

ACF — один из самых популярных плагинов для добавления кастомных полей. Он позволяет создавать сложные структуры данных, включая повторяющиеся поля, галереи и связи. Для создания управляемого списка используйте тип «Повторяющееся поле» или отдельный CPT с полями ACF.

Плюсы ACF:

  • Удобный визуальный интерфейс для создания полей.
  • Гибкость и совместимость с темами и плагинами.
  • Хорошо документирован и поддерживается.

Для вывода данных ACF используйте функцию get_field():

$items = get_field('wplink_list_items');
if ($items) {
  echo '<ul>';
  foreach ($items as $item) {
    echo '<li>' . esc_html($item['title']) . '</li>';
  }
  echo '</ul>';
}

Плагин WPList Manager

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

Основные возможности:

  • Импорт и экспорт данных.
  • Настраиваемые шаблоны отображения.
  • Интеграция с шорткодами и Gutenberg-блоками.

Этот плагин подойдёт, если вам нужна расширенная функциональность без программирования.

Плагин WPRemark для оценки и управления списками

WPRemark позволяет добавлять рейтинги и отзывы к элементам списка, что полезно для каталогов и обзоров. Интеграция с управляемыми списками расширяет интерактивность сайта, повышая вовлечённость пользователей.

Подробнее о WPRemark и его возможностях можно узнать на официальной странице плагина.

Практические советы по оптимизации и безопасности управляемых списков

При работе с кастомными типами записей и метаполями важно соблюдать несколько правил:

  • Используйте sanitize_textarea_field и другие функции очистки данных при сохранении.
  • Ограничьте права доступа к редактированию списков, чтобы избежать нежелательных изменений.
  • Добавляйте индексы к метаполям в базе данных, если список большой и используется сортировка.
  • Кэшируйте вывод списков, чтобы снизить нагрузку на сервер.

Также рекомендуем использовать плагины оптимизации и безопасности, например, Clearfy Pro, чтобы повысить производительность и защиту сайта.

Как создать комплексный фильтр постов WordPress с применением мета-записей
08.03.2026
Автопостинг в WordPress: как настроить автоматический публикации
22.11.2025
Как удалить или заблокировать роботов в WordPress через robots.txt
31.03.2026
Как удалить или изменить slug постов в WordPress без плагинов
17.12.2025
Как удалить проблемы с кэшированием в WooCommerce
03.06.2026