WordPress изначально предлагает стандартные типы записей — записи (posts) и страницы (pages). Но для многих проектов этого недостаточно. Например, если вы хотите создать сайт с каталогом товаров, отзывов, портфолио или мероприятиями, удобнее использовать собственные типы записей — Custom Post Types (CPT). Для их создания есть несколько способов, но самый удобный и популярный — плагин Custom Post Type UI (CPT UI).
Что такое плагин CPT UI и зачем он нужен
CPT UI — это бесплатный плагин для WordPress, который позволяет создавать и управлять пользовательскими типами записей и таксономиями через удобный интерфейс в админ-панели. Вам не нужно писать код вручную, что особенно удобно, если вы не хотите углубляться в детали WordPress API.
Тем не менее, чтобы максимально эффективно использовать CPT UI, полезно понимать, что происходит «под капотом» — как зарегистрировать CPT с помощью PHP, и какие параметры можно настраивать.
Плагин позволяет быстро:
- создать новый тип записи с нужными параметрами (название, ярлык, поддержка редактора, миниатюр и т.д.);
- создавать и настраивать таксономии (категории, метки, или свои собственные);
- управлять видимостью CPT в админке и на фронтенде;
- экспортировать настройки CPT в PHP-код для дальнейшего использования в своем плагине или теме.
Как установить и настроить CPT UI
Для начала установите плагин через админку WordPress:
- Перейдите в меню Плагины > Добавить новый.
- В поле поиска введите
Custom Post Type UI. - Найдите плагин автора WebDevStudios и нажмите Установить, затем Активировать.
После активации в админке появится новый пункт меню CPT UI.
Перейдите в раздел CPT UI > Добавить/Редактировать типы записей.
Здесь можно задать основные параметры:
- Slug типа записи: уникальный идентификатор, например
portfolioилиreviews. Лучше использовать латиницу и дефисы. - Название (Singular Label): как будет называться одна запись, например «Портфолио».
- Множественное название (Plural Label): для списка записей, например «Портфолио».
- Описание: краткое пояснение для админки.
- Параметры отображения: видимость в меню, поддержка редактора, миниатюр, комментариев и т.д.
После заполнения нажмите Добавить тип записи.
Практический пример: создание типа записей «Отзывы» с CPT UI
Допустим, нам нужно добавить на сайт раздел с отзывами клиентов. Для этого сделаем CPT с названием otzyvy.
В настройках CPT UI укажем:
- Slug:
otzyvy - Singular Label: Отзыв
- Plural Label: Отзывы
- Поддержка: редактор, миниатюры, комментарии
- Показывать в меню админки — включено
После создания CPT в меню появится новый пункт «Отзывы». Теперь можно добавлять отзывы как обычные записи.
Добавление пользовательских полей для отзывов
Чтобы расширить функционал, например добавить поле «Оценка» (от 1 до 5), можно использовать плагин Advanced Custom Fields (ACF).
После установки ACF создайте группу полей для типа записи otzyvy с полем:
- Тип: число
- Название: Оценка
- Минимум: 1, максимум: 5
Теперь при добавлении отзыва можно указывать оценку.
Экспорт настроек CPT UI в PHP для тонкой настройки
CPT UI позволяет экспортировать созданные типы записей в PHP-код, чтобы добавить их в functions.php вашей темы или в собственный плагин. Это удобно для контроля версий и переноса настроек.
Пример кода для регистрации CPT «Отзывы» после экспорта:
function wpnote_register_post_type_otzyvy() {
$labels = array(
'name' => 'Отзывы',
'singular_name' => 'Отзыв',
'menu_name' => 'Отзывы',
'name_admin_bar' => 'Отзыв',
);
$args = array(
'labels' => $labels,
'public' => true,
'has_archive' => true,
'show_in_menu' => true,
'supports' => array('title', 'editor', 'thumbnail', 'comments'),
'rewrite' => array('slug' => 'otzyvy'),
);
register_post_type('otzyvy', $args);
}
add_action('init', 'wpnote_register_post_type_otzyvy');Этот код можно модифицировать, добавлять дополнительные параметры и интегрировать с другими функциями.
Работа с таксономиями для пользовательских типов записей
Для удобной навигации по CPT часто создают собственные таксономии, например категории или метки, связанные именно с этим типом записей.
В CPT UI есть отдельный раздел CPT UI > Добавить/Редактировать таксономии, где можно создать новую таксономию, например «Типы отзывов» для CPT «Отзывы».
Пример параметров таксономии:
- Slug:
tip-otzyva - Singular Label: Тип отзыва
- Plural Label: Типы отзывов
- Привязка к типу записи:
otzyvy - Иерархическая: да (как категории)
После создания таксономии в карточке отзыва появится возможность выбрать тип отзыва для удобной фильтрации и вывода.
Пример вывода CPT с таксономией в шаблоне
Чтобы вывести отзывы с определенной категорией, используйте WP_Query. Пример кода для шаблона:
$args = array(
'post_type' => 'otzyvy',
'tax_query' => array(
array(
'taxonomy' => 'tip-otzyva',
'field' => 'slug',
'terms' => 'pozitivnye',
),
),
);
$query = new WP_Query($args);
if ($query->have_posts()) {
while ($query->have_posts()) {
$query->the_post();
echo '<h3>' . get_the_title() . '</h3>';
the_content();
$rating = get_field('ocenka'); // поле из ACF
echo '<p>Оценка: ' . esc_html($rating) . '</p>';
}
wp_reset_postdata();
} else {
echo '<p>Отзывы не найдены.</p>';
}Советы по оптимизации и безопасности при работе с CPT UI
Несколько рекомендаций для стабильной работы:
- Всегда экспортируйте настройки CPT в PHP-код и храните их в системе контроля версий, чтобы избежать потери данных при обновлениях.
- Обратите внимание на права доступа — по умолчанию CPT видны администраторам и редакторам, но при необходимости можно ограничить доступ с помощью плагинов или кода.
- Оптимизируйте запросы — при большом количестве записей используйте пагинацию и кэширование.
- Используйте SEO-плагины для настройки метаданных и карты сайта для новых типов записей, чтобы улучшить индексацию.
Подводя итог, CPT UI — мощный инструмент для расширения функциональности WordPress без глубокого погружения в код. Но для продвинутых решений рекомендуется комбинировать его с собственными функциями и плагинами, такими как ACF, чтобы создать удобный и функциональный сайт.