Свой тип записи в WordPress: чек-лист перед продакшеном
Тип записи для каталога в WordPress легко создать, но перед запуском нужно проверить URL, права, архивы, поиск и переносимость данных. Этот чек-лист поможет не потерять товары при смене темы и не выпустить каталог с пустыми страницами.

Каталог на пользовательском типе записи может выглядеть готовым в админке и при этом терять записи после смены темы, отдавать 404 на архиве или показывать карточки без нужных полей. Проверьте регистрацию, URL, права и шаблоны до запуска: ниже — чек-лист для WordPress 6.x, ориентированный на сайт с отдельным каталогом, а не на обычные записи блога.
Сначала решите, кому принадлежат данные
Ключевой выбор — где регистрировать тип записи. Если каталог должен пережить редизайн и смену темы, его регистрация относится к отдельному плагину сайта или функциональному плагину, а не к файлу темы. Иначе при переключении темы WordPress перестанет знать тип записи: данные останутся в базе, но исчезнут из привычного раздела админки и могут перестать открываться по прежним URL.
| Где зарегистрировать | Подходит, когда | Цена выбора |
|---|---|---|
| Функциональный плагин | Каталог — самостоятельная часть сайта, которая должна пережить смену дизайна | Нужно поддерживать отдельный плагин и следить за его совместимостью |
| Тема | Тип записей не имеет смысла без конкретного оформления темы | При смене темы регистрация пропадёт; каталог окажется связан с оформлением |
| Плагин управления типами записей | Команде важнее управлять настройками из интерфейса, чем поддерживать собственный код | Появляется зависимость от конкретного плагина; перед миграцией нужно проверить, кто хранит настройки и данные |
Для каталога организаций, объектов или товаров обычно важна переносимость данных, поэтому регистрация в функциональном плагине — наиболее предсказуемый вариант. Это не универсальный закон: если проект намеренно привязан к одной теме, допустима другая схема, но её нужно зафиксировать в документации.
Смена темы не должна решать, существует ли ваш каталог. Дизайн отвечает за представление данных, а функциональный слой — за их тип и поведение.
Проверьте регистрацию, а не только экран в админке
В WordPress пользовательский тип записи регистрируют через API register_post_type. Для продакшена важны не только название пункта меню и видимость в админке. Сверьте конфигурацию с задачей каталога и проверьте каждое решение в установленной версии WordPress 6.x.
- Уникальный машинный идентификатор. Используйте стабильное имя, которое не связано с названием темы и не меняется при ребрендинге. Перед добавлением проверьте, что такое имя не занято другим плагином.
- Публичность и REST API. Настройки публичного доступа влияют на то, доступен ли тип записи на сайте, в REST API и в редакторе блоков. Не включайте и не отключайте эти возможности «на всякий случай»: проверьте фактический сценарий редакторов, интеграций и интерфейса.
- Архив и адреса. Если у каталога нужна общая страница со всеми объектами, отдельно предусмотрите архив. Решите, какой URL должен быть у записи и архива; проверьте конфликт со страницами и другими типами контента.
- Поддержка редактора. Укажите только те форматы и функции, которыми редакторы действительно пользуются. Например, поддержка миниатюр имеет смысл, если тема или блоки выводят изображение каталога.
- Права доступа. Проверьте, кто может создавать, редактировать, публиковать и удалять записи. Для нестандартных ролей и отдельных возможностей может потребоваться дополнительная настройка capabilities.
- Публичные и закрытые данные. Не полагайтесь только на то, что ссылка не опубликована. Проверьте настройки публичности, поиск, REST API и поведение для записей со статусами черновика и приватной публикации.
Пользовательский тип записи1 — отдельная модель контента WordPress, например «объект каталога», в отличие от стандартных записей и страниц. Сам тип задаёт структуру и поведение, а не внешний вид карточки.
Чек-лист перед выпуском
- Зафиксируйте контракт данных. Перечислите, что считается одной записью каталога, какие поля обязательны и кто их заполняет. Отделите поля объекта от таксономий: например, категорию каталога обычно удобнее назначать как классификацию, а не дублировать текстом в произвольном поле. Проверка: редактор может заполнить тестовую запись без догадок и пояснений в чате.
- Проверьте экран редактирования. Убедитесь, что нужные блоки, миниатюра, таксономии и метаданные доступны нужным ролям. Проверьте обязательные поля не только визуально, но и в правилах публикации: пустая цена или адрес могут испортить карточку. Проверка: редактор проходит сценарий создания и обновления записи на тестовом сайте.
- Проверьте ссылки после настройки rewrite. Если меняли структуру постоянных ссылок или правила URL, сохраните настройки постоянных ссылок в админке, чтобы WordPress пересобрал правила. Не вызывайте сброс правил при каждом запросе: это не действие для обычной загрузки страницы. Проверка: открываются архив и отдельная запись, а не страница 404.
- Проверьте шаблоны. Для каталога нужны понятные страницы списка и отдельной записи; конкретные файлы шаблонов зависят от того, использует сайт классическую тему или блочную. Проверьте пагинацию, пустой каталог, длинное название и отсутствие необязательного поля. Проверка: все эти состояния выглядят осмысленно и не выводят пустые подписи.
- Пройдите путь посетителя. Убедитесь, что записи находятся через предусмотренные фильтры и поиск, если такие функции есть. Не обещайте фильтрацию по произвольным полям, пока не проверили, как именно она реализована и работает на реальном объёме данных. Проверка: посетитель может найти объект по тем критериям, которые каталог показывает в интерфейсе.
- Проверьте роли и REST. Откройте сайт под редактором, администратором и обычным посетителем. Проверьте ответы REST API, если их используют редактор, приложение или внешний сервис. Проверка: каждая роль видит только положенные ей действия и данные.
- Проверьте отключение и обновление плагина. На копии сайта деактивируйте функциональный плагин и активируйте снова. Оцените, что происходит с данными и URL; не удаляйте записи при деактивации. Проверка: после повторной активации каталог возвращается без ручного восстановления базы.
- Подготовьте миграцию. Зафиксируйте идентификатор типа записей, таксономии, метаполя и правила переноса. Проверьте импорт на копии базы, если каталог загружают из таблицы или другой CMS. Проверка: число записей, связи с таксономиями и заполнение ключевых полей совпадают с источником.
Что чаще всего ломается
После смены темы пропал пункт каталога
Скорее всего, тип записи регистрировала тема. Данные обычно не исчезли из базы, но WordPress больше не загружает правила их обработки. Верните регистрацию в функциональный плагин, затем проверьте постоянные ссылки и шаблоны. Перед таким переносом сначала сделайте копию сайта.
Архив открывается с 404
Проверьте, включён ли архив в конфигурации типа записи, не конфликтует ли его адрес со страницей и обновились ли правила постоянных ссылок. Если ошибка появилась после развёртывания на другом окружении, сравните настройки URL и активные плагины, а не только файлы темы.
Редактор не видит нужный раздел или поле
Причиной могут быть настройки видимости типа записи, права роли, конфигурация редактора или плагин, который меняет интерфейс. Проверьте проблему отдельно под администратором и под реальной ролью редактора. Если используете REST API, убедитесь, что его поддержка предусмотрена конфигурацией и соответствует требованиям сайта.
Поиск и фильтры показывают не то
Регистрация типа записи не означает, что любой поиск автоматически ищет по всем полям каталога. Уточните, ищет ли текущий механизм по заголовку, содержимому, таксономиям или метаданным. Для каталога с большим числом записей измерьте время ответа на типичных запросах и проверьте планы оптимизации отдельно.
Когда чек-лист пройден
Сделайте контрольный прогон на копии продакшена: создайте запись, опубликуйте её, найдите через архив, измените под ролью редактора, затем проверьте миграцию и восстановление из резервной копии. Именно копия покажет проблемы URL, прав и зависимостей от плагинов без риска для посетителей.
После запуска наблюдайте за 404 на URL каталога, ошибками REST API и неудачными действиями редакторов. Если планируете менять структуру адресов или переносить записи, сначала подготовьте карту старых и новых URL и сценарий отката. Регистрацию типа записей, его таксономии и метаполя стоит описать рядом с кодом плагина: следующему разработчику не придётся угадывать, какие настройки нельзя менять.
1 В терминологии WordPress пользовательские типы записей часто называют custom post types (CPT).
Тендерный специалист 44-ФЗ / 223-ФЗ: Разбор PDF-документации закупки, поиск «заточек» под поставщика, чек-лист заявки.
Спросить за 20 ₽Источники: WordPress Developer Resources: Post Types, WordPress Developer Resources: register_post_type()
Частые вопросы
Можно ли зарегистрировать каталог прямо в теме WordPress?
Исчезнут ли записи, если отключить плагин с типом записи?
Почему после создания типа записи открывается 404?
Нужно ли включать REST API для каталога?
Нужно ли писать отдельный шаблон для списка записей?
Как проверить каталог перед обновлением WordPress?
Материал носит информационный характер и подготовлен редакцией «Агентуры». Он не является офертой, рекламой или индивидуальной консультацией. Упомянутые продукты, компании и торговые знаки принадлежат их правообладателям. Перед принятием решений, влекущих юридические или финансовые последствия, обратитесь к профильному специалисту.