Как добавить кастомные типы постов в WordPress без плагинов

Кастомные типы постов (Custom Post Types, CPT) — важный инструмент для расширения функционала WordPress. Они позволяют создавать различные виды контента, отличные от стандартных записей и страниц. Многие используют плагины для добавления CPT, но зачастую это лишняя нагрузка на систему. В этой статье я покажу, как создавать кастомные типы постов вручную, используя функции WordPress, а также расскажу о нюансах и особенностях их использования.

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

Кастомные типы постов позволяют структурировать контент на сайте, создавая отдельные сущности с собственными параметрами и шаблонами. Например, если вы ведёте сайт с обзорами книг, имеет смысл создать тип поста book_review, чтобы отделить их от обычных записей блога.

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

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

Как зарегистрировать кастомный тип поста в WordPress вручную

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

Пример регистрации типа поста wphost_book для обзоров книг:

function wphost_register_custom_post_type() {
    $labels = [
        '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 = [
        'labels'             => $labels,
        'public'             => true,
        'has_archive'        => true,
        'rewrite'            => ['slug' => 'book-reviews'],
        'supports'           => ['title', 'editor', 'thumbnail', 'custom-fields'],
        'show_in_rest'       => true, // для поддержки Gutenberg
        'menu_position'      => 5,
        'menu_icon'          => 'dashicons-book',
    ];

    register_post_type('wphost_book', $args);
}
add_action('init', 'wphost_register_custom_post_type');

После добавления этого кода в functions.php и обновления постоянных ссылок (Настройки > Постоянные ссылки > Сохранить изменения) в админке появится новый раздел «Обзоры книг».

Настройка таксономий для кастомного типа поста

Для полноты функционала часто нужно добавить собственные таксономии (например, жанры, авторы). Это можно сделать через функцию register_taxonomy().

Пример добавления таксономии «Жанр» к обзорам книг:

function wphost_register_custom_taxonomy() {
    $labels = [
        'name'              => 'Жанры',
        'singular_name'     => 'Жанр',
        'search_items'      => 'Искать жанры',
        'all_items'         => 'Все жанры',
        'edit_item'         => 'Редактировать жанр',
        'add_new_item'      => 'Добавить новый жанр',
        'new_item_name'     => 'Название нового жанра',
        'menu_name'         => 'Жанры',
    ];

    $args = [
        'hierarchical'      => true, // как категории
        'labels'            => $labels,
        'show_ui'           => true,
        'show_in_rest'      => true,
        'show_admin_column' => true,
        'query_var'         => true,
        'rewrite'           => ['slug' => 'book-genre'],
    ];

    register_taxonomy('wphost_book_genre', ['wphost_book'], $args);
}
add_action('init', 'wphost_register_custom_taxonomy');

Теперь при добавлении или редактировании обзора книги вы сможете выбирать жанры, что улучшит навигацию и фильтрацию контента.

Вывод кастомных типов постов на сайте

Для вывода CPT в шаблонах можно использовать WP_Query. Например, чтобы вывести последние 5 обзоров книг с их заголовками и ссылками:

$args = [
    'post_type'      => 'wphost_book',
    'posts_per_page' => 5,
];
$query = new WP_Query($args);
if ($query->have_posts()) {
    echo '<ul>';
    while ($query->have_posts()) {
        $query->the_post();
        echo '<li><a href="' . get_permalink() . '">' . get_the_title() . '</a></li>';
    }
    echo '</ul>';
    wp_reset_postdata();
} else {
    echo 'Обзоры не найдены';
}

Для более сложных выводов можно создавать кастомные шаблоны. Для CPT WordPress ищет файлы шаблонов по имени single-{post_type}.php для одиночной записи и archive-{post_type}.php для архива.

Пример создания файла шаблона single-wphost_book.php

Создайте в папке темы файл single-wphost_book.php и добавьте базовый код вывода:

<?php get_header(); ?>

<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
    <h1><?php the_title(); ?></h1>
    <div class="content"><?php the_content(); ?></div>
<?php endwhile; endif; ?>

<?php get_footer(); ?>

Так вы получите гибкий и удобный вывод контента.

Советы по работе с кастомными типами постов

Несколько рекомендаций для стабильной работы CPT:

  • Всегда используйте префиксы для функций и имён типов, чтобы избежать конфликтов (как в наших функциях с префиксом wphost_).
  • Обязательно обновляйте постоянные ссылки после регистрации нового CPT.
  • Используйте поддержку REST API ('show_in_rest' => true) для совместимости с редактором Gutenberg и внешними интеграциями.
  • Не забывайте про роль доступа и права — можно ограничить доступ к новым типам постов для разных групп пользователей.

Заключение

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

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

Как разрешить доступ к файлам WordPress через .htaccess: практическое руководство
02.01.2026
Как удалить все комментарии на WordPress с помощью кода
23.12.2025
Как использовать кастомные колонки в WooCommerce для управления продуктами
22.05.2026
Как изменить уникальный slug в WordPress для записей без плагинов
07.03.2026
Как использовать WP-Cron для автоматизации задач в WordPress
09.06.2026