Як створити кастомний тип запису (Custom Post Type) і таксономію у WordPress

Кастомні типи записів (CPT) у WordPress дозволяють створювати власні сутності — наприклад, «Портфоліо», «Кейси», «Рецепти» або «Події». Вони розширюють стандартні «Пости» та «Сторінки» й надають більше гнучкості для розробників. У цій статті розглянемо, як зареєструвати власний тип запису та таксономію.

1. Реєстрація кастомного типу запису

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

function create_custom_post_type() {
  register_post_type('portfolio', array(
    'labels' => array(
      'name' => 'Портфоліо',
      'singular_name' => 'Проєкт',
    ),
    'public' => true,
    'has_archive' => true,
    'rewrite' => array('slug' => 'portfolio'),
    'supports' => array('title', 'editor', 'thumbnail'),
    'show_in_rest' => true, // для Gutenberg і REST API
  ));
}
add_action('init', 'create_custom_post_type');

Це створить нову секцію «Портфоліо» в адмін-панелі з підтримкою заголовку, контенту і зображення.

2. Реєстрація кастомної таксономії

Таксономія — це категоризація, подібна до «Категорій» або «Міток». Щоб створити власну, наприклад «Тип проєкту», додайте:

function create_custom_taxonomy() {
  register_taxonomy('project_type', 'portfolio', array(
    'labels' => array(
      'name' => 'Типи проєктів',
      'singular_name' => 'Тип проєкту',
    ),
    'public' => true,
    'hierarchical' => true, // true = як категорії, false = як мітки
    'rewrite' => array('slug' => 'project-type'),
    'show_in_rest' => true,
  ));
}
add_action('init', 'create_custom_taxonomy');

Тепер у розділі «Портфоліо» з’явиться новий фільтр «Тип проєкту».

3. Виведення на сайті

Створіть шаблон archive-portfolio.php або використовуйте WP_Query у будь-якому місці теми:

<?php
$args = array('post_type' => 'portfolio');
$query = new WP_Query($args);
if ($query->have_posts()) :
  while ($query->have_posts()) : $query->the_post(); ?>
    <h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
  <?php endwhile;
endif;
wp_reset_postdata();
?>

4. Поради та практика

  • Додайте menu_icon у register_post_type(), щоб задати свою іконку.
  • Для кастомних таксономій зручно створити шаблон taxonomy-project_type.php.
  • Використовуйте плагіни CPT UI або Meta Box для візуального керування.

Висновок

Кастомні типи записів і таксономії — обов’язковий інструмент для розробника, який хоче створювати структуровані, масштабовані сайти на WordPress. З їх допомогою ви можете реалізувати будь-яку контентну модель, не виходячи за межі стандартної архітектури WP.