Кастомные типы записей: когда один post не должен тащить весь сайт
Кастомный тип записей нужен не ради «красивой структуры», а когда у сущности свои поля, своя логика и свой архив. Примеры: портфолио, вакансии, отзывы, проекты, события. Если у записи есть отдельный шаблон, фильтры и способ вывода — это уже кандидат на свой CPT.
Главная ошибка — делать CPT для всего подряд. Если отличие только в заголовке и картинке, хватит обычной записи с рубрикой или ACF-полями. CPT оправдан, когда нужен отдельный жизненный цикл: свой архив, отдельные URL, независимые таксономии, свои правила сортировки и поиска. Иначе вы получите лишнюю сложность в админке и шаблонах.
В теме CPT лучше регистрировать в init, а логику вывода держать отдельно от шаблона. Полезный минимум:
— supports: только нужные опции
— has_archive: если нужен архив
— rewrite: понятный slug
— show_in_rest: если планируется редактор блоков или API
— отдельные файлы single-{post_type}.php и archive-{post_type}.php
После регистрации проверьте три вещи: архив открывается, одиночная страница строится без 404, а таксономии не конфликтуют с рубриками и страницами. Если контент начал дублироваться в поиске, значит CPT и обычные записи решают одну и ту же задачу.
Делайте кастомный тип только там, где он снимает хаос, а не добавляет его: меньше универсальности в админке, больше ясности в шаблонах.
Разработка тем WordPress
@wp_dev_deep_dive_ww
Кастомные типы записей: когда один post не должен тащить весь сайт
Этот пост опубликован в Telegram-канале Разработка тем WordPress. Подписаться можно по ссылке: @wp_dev_deep_dive_ww.