Как добавить собственные типы записей в WordPress с помощью Meta Box

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

Почему стоит использовать Meta Box для создания собственных типов записей?

Meta Box — это бесплатный и расширяемый плагин, который позволяет создавать не только типы записей, но и настраиваемые поля, метабоксы и даже таксономии. Он хорошо документирован и имеет множество дополнений для самых разных случаев. В сравнении с ручным прописыванием CPT в файлах темы, Meta Box упрощает разработку и делает код более читаемым и поддерживаемым.

Кроме того, Meta Box позволяет легко добавлять пользовательские поля к типам записей, что особенно полезно, если нужно хранить дополнительные данные, например, адреса, даты, номера телефонов и пр.

Установка и базовая настройка Meta Box

Для начала установим плагин. В админке WordPress выберите Плагины > Добавить новый, найдите Meta Box и установите его. После активации можно приступать к созданию собственного типа записи.

Для примера создадим тип записи «Книги» для сайта библиотеки или книжного магазина.

Создание типа записи «Книги» с помощью Meta Box

Добавим следующий код в файл functions.php вашей темы или в отдельный плагин:

function wp_puzzle_register_cpt_books() {
    $labels = array(
        'name'               => 'Книги',
        'singular_name'      => 'Книга',
        'menu_name'          => 'Книги',
        'name_admin_bar'     => 'Книга',
        'add_new'            => 'Добавить новую',
        'add_new_item'       => 'Добавить новую книгу',
        'new_item'           => 'Новая книга',
        'edit_item'          => 'Редактировать книгу',
        'view_item'          => 'Просмотреть книгу',
        'all_items'          => 'Все книги',
        'search_items'       => 'Искать книги',
        'parent_item_colon'  => 'Родительские книги:',
        'not_found'          => 'Книги не найдены.',
        'not_found_in_trash' => 'В корзине книги не найдены.'
    );

    $args = array(
        'labels'             => $labels,
        'public'             => true,
        'publicly_queryable' => true,
        'show_ui'            => true,
        'show_in_menu'       => true,
        'query_var'          => true,
        'rewrite'            => array('slug' => 'books'),
        'capability_type'    => 'post',
        'has_archive'        => true,
        'hierarchical'       => false,
        'menu_position'      => 5,
        'supports'           => array('title', 'editor', 'thumbnail', 'excerpt')
    );

    register_post_type('wp_puzzle_books', $args);
}
add_action('init', 'wp_puzzle_register_cpt_books');

Этот код регистрирует новый тип записи с названием «Книги» и необходимыми параметрами, такими как поддержка миниатюр, редактора и т.д.

Добавление настраиваемых полей к типу записи с Meta Box

Одна из сильных сторон Meta Box — удобное создание метабоксов с полями. Например, для книги полезно добавить поля «Автор», «Год издания» и «ISBN».

Создадим метабокс с этими полями. В functions.php добавьте:

function wp_puzzle_register_meta_boxes( $meta_boxes ) {
    $meta_boxes[] = array(
        'id'       => 'book_details',
        'title'    => 'Детали книги',
        'post_types' => array('wp_puzzle_books'),
        'context'  => 'normal',
        'priority' => 'high',
        'fields'   => array(
            array(
                'id'   => 'author',
                'name' => 'Автор',
                'type' => 'text',
            ),
            array(
                'id'   => 'year',
                'name' => 'Год издания',
                'type' => 'number',
                'min'  => 1500,
                'max'  => date('Y'),
            ),
            array(
                'id'   => 'isbn',
                'name' => 'ISBN',
                'type' => 'text',
            ),
        ),
    );

    return $meta_boxes;
}
add_filter('rwmb_meta_boxes', 'wp_puzzle_register_meta_boxes');

Этот код использует фильтр rwmb_meta_boxes плагина Meta Box для добавления нового блока с тремя полями. После сохранения записи данные будут автоматически сохранены и доступны в админке.

Вывод собственных полей в шаблоне темы

Чтобы вывести данные из метаполей на сайте, используйте функцию rwmb_meta, предоставляемую Meta Box. Пример вывода в шаблоне single-wp_puzzle_books.php:

<?php
$author = rwmb_meta('author');
$year = rwmb_meta('year');
$isbn = rwmb_meta('isbn');
?>

<h2><?php the_title(); ?></h2>
<p><strong>Автор:</strong> <?php echo esc_html($author); ?></p>
<p><strong>Год издания:</strong> <?php echo esc_html($year); ?></p>
<p><strong>ISBN:</strong> <?php echo esc_html($isbn); ?></p>
<div><?php the_content(); ?></div>

Так вы сможете красиво отобразить все данные книги на отдельной странице.

Полезные советы и расширения

Используйте таксономии для категорий книг

Для удобной фильтрации книг можно добавить собственные таксономии, например «Жанр» или «Издательство». Meta Box поддерживает регистрацию таксономий через параметры.

Автоматизация и импорт данных

Если нужно импортировать много записей, можно написать скрипт, который будет создавать записи и заполнять метаполя через функции WordPress и Meta Box. Это удобно для миграции или массового обновления.

Интеграция с плагинами WPShop

Если вы используете на сайте WPShop, рекомендую обратить внимание на плагин WPRemark для создания отзывов к книгам, а также ABC Pagination для удобной навигации по спискам книг.

Итог

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

Добавь в закладки и поделись с друзьями:

⭐⭐⭐⭐⭐
WooCommerce: как настроить двухфакторную авторизацию через SMS с помощью плагина Twilio
25.04.2026
WordPress: как автоматически отключать неиспользуемые плагины для оптимизации сайта
07.03.2026
Как создать и использовать собственный Post Type в WordPress: подробное руководство
25.11.2025
WooCommerce: как автоматически удалять товары с нулевым остатком
11.05.2026
Как использовать хуки для добавления функциональности в WordPress
08.11.2025
×

AI-плагин

WPGPT
Сам создает статьи для вашего сайта WordPress

SEO и мета-теги

Парсинг конкурентов

Изображения

Комментарии

Подробнее