Как добавить дополнительный тип записей (Custom Post Type) в WordPress без плагинов

|

В WordPress базовый тип контента — это записи (posts) и страницы (pages). Но для многих проектов этого недостаточно, и тогда на помощь приходят Custom Post Types — собственные типы записей. Они позволяют структурировать контент под конкретные задачи, например, добавить «Портфолио», «Отзывы», «События» и т.п.

Что такое Custom Post Type и зачем он нужен

Custom Post Type (CPT) — это дополнительный тип записей, который вы регистрируете в WordPress. Он полностью независим от стандартных «Записей» и «Страниц» и может иметь собственные поля, метаданные, таксономии и шаблоны отображения.

Преимущества использования CPT:

Пример: если у вас сайт агентства, можно создать CPT «Проекты» с отдельным интерфейсом и отображением.

Как зарегистрировать Custom Post Type вручную в WordPress

Для регистрации CPT используется функция register_post_type(). Добавлять код лучше в файл functions.php вашей темы или в отдельный плагин, если хотите сохранить типы записей при смене темы.

Обязательная часть — уникальный идентификатор типа и массив аргументов с настройками.

Пример регистрации CPT «Проекты»

function wpreboot_register_projects_cpt() {
    $labels = array(
        'name' => 'Проекты',
        'singular_name' => 'Проект',
        'add_new' => 'Добавить проект',
        'add_new_item' => 'Добавить новый проект',
        'edit_item' => 'Редактировать проект',
        'new_item' => 'Новый проект',
        'all_items' => 'Все проекты',
        'view_item' => 'Просмотр проекта',
        'search_items' => 'Поиск проектов',
        'not_found' => 'Проекты не найдены',
        'not_found_in_trash' => 'В корзине проектов не найдено',
        'menu_name' => 'Проекты'
    );
    
    $args = array(
        'labels' => $labels,
        'public' => true,
        'has_archive' => true,
        'rewrite' => array('slug' => 'projects'),
        'supports' => array('title', 'editor', 'thumbnail', 'excerpt'),
        'show_in_rest' => true // поддержка Gutenberg
    );

    register_post_type('wpreboot_project', $args);
}
add_action('init', 'wpreboot_register_projects_cpt');

В этом примере мы создали CPT с ключом wpreboot_project. Обратите внимание на параметр show_in_rest — он включает поддержку редактора Gutenberg для нового типа записей.

Настройка отображения и таксономий для CPT

Для удобства работы с CPT можно добавить собственные таксономии (категории, метки) или использовать стандартные. Вот как зарегистрировать таксономию «Тип проекта» для CPT «Проекты».

function wpreboot_register_project_taxonomy() {
    $labels = array(
        'name' => 'Типы проектов',
        'singular_name' => 'Тип проекта',
        'search_items' => 'Поиск типов проектов',
        'all_items' => 'Все типы проектов',
        'edit_item' => 'Редактировать тип проекта',
        'add_new_item' => 'Добавить новый тип проекта',
        'menu_name' => 'Типы проектов'
    );

    $args = array(
        'labels' => $labels,
        'hierarchical' => true, // как категории
        'show_in_rest' => true,
        'rewrite' => array('slug' => 'project-type')
    );

    register_taxonomy('wpreboot_project_type', 'wpreboot_project', $args);
}
add_action('init', 'wpreboot_register_project_taxonomy');

Теперь в админке у проектов появится дополнительное меню для выбора типа проекта.

Как вывести записи собственного типа на сайте

Для вывода CPT в шаблонах можно использовать стандартный WP_Query, указав параметр post_type.

Пример простого вывода последних 5 проектов:

$projects = new WP_Query(array(
    'post_type' => 'wpreboot_project',
    'posts_per_page' => 5
));

if ($projects->have_posts()) :
    while ($projects->have_posts()) : $projects->the_post();
        echo '<h2>' . get_the_title() . '</h2>';
        the_excerpt();
    endwhile;
    wp_reset_postdata();
else :
    echo 'Проекты не найдены';
endif;

Этот код можно вставить в любой шаблон темы, например, в page-projects.php или в кастомный шаблон страницы.

Полезные плагины для работы с Custom Post Types

Хотя сейчас мы делаем всё вручную, иногда полезно использовать плагины для удобства:

Для сайта на базе темы Reboot можно легко интегрировать CPT, добавив шаблоны по типу single-wpreboot_project.php и archive-wpreboot_project.php для вывода контента.

Советы и лучшие практики при работе с CPT

Создавая свои типы записей, учитывайте следующие моменты:

Если хотите сделать CPT переносимым, лучше оформить регистрацию в отдельном плагине, а не в теме.

Как добавить дополнительный тип записей (Custom Post Type) в WordPress без плагинов
19.02.2026
WooCommerce: как автоматически возвращать товар в склад после отмены заказа
24.04.2026
Как создать подписку на email в WordPress без плагинов: практическое руководство
21.11.2025
Как автоматизировать удаление спам-комментариев в WordPress
31.12.2025
Как использовать OmniVideo для автоматического видео-контента в WordPress
19.03.2026
×

AI-плагин от WPShop.ru

анализирует конкурентов

пишет статьи

готовит SEO

генерирует изображения

и еще кое-что...
WPGPT
Плагин, который наполняет ваш сайт WordPress
Узнать больше