Формат Lana Pages Full JSON: создание и обновление страниц
Формат Lana Pages Full JSON используется для создания и обновления страниц WordPress вместе с контентом, SEO, шаблоном и метаданными. Его задача — сделать импорт предсказуемым: до применения должно быть понятно, какой объект создаётся, какой обновляется и какие поля будут затронуты.
Создание новой страницы
Для новой страницы используется operation: create и id: 0 или null. Требовать существующий ID неправильно, потому что объекта ещё нет.
{
"id": 0,
"operation": "create",
"slug": "platform-docs",
"status": "publish",
"title": "Документация платформы"
}
После импорта WordPress назначит новый ID. Slug должен быть уникальным.
Обновление существующей страницы
Operation: update требует реальный ID существующей страницы. Пакет лучше формировать на основе свежего экспорта, чтобы не потерять метаполя.
{
"id": 123,
"operation": "update",
"slug": "platform-docs",
"status": "publish"
}
Когда менять slug
Slug является частью URL. Для обычной правки текста его сохраняют. Изменение допустимо только по отдельной задаче и с настройкой 301-редиректа.
Статусы страниц
- publish — доступна посетителям.
- draft — черновик.
- private — ограниченный доступ.
- pending — ожидает проверки.
Для больших пакетов новые страницы безопаснее сначала создавать как draft.
Шаблон страницы
Page_template должен принимать только допустимое значение: default, page.php или зарегистрированный шаблон темы. Произвольные значения нельзя массово записывать в _wp_page_template.
Приоритет источников должен быть однозначным: верхнее поле, затем meta_entries, затем старое meta.
Обычные и защищённые операции
Обычные операции — create и update. Защищённые — delete, trash, restore и validate_only.
Create нельзя направлять в валидатор защищённых операций, иначе импортёр ошибочно потребует ID.
Минимальная структура
{
"format": "lana_pages_full_json",
"version": 1,
"post_type": "page",
"items": [
{
"id": 0,
"operation": "create",
"slug": "new-page",
"status": "draft"
}
]
}
Проверка перед импортом
- Проверить синтаксис JSON.
- Сверить format, version и post_type.
- Проверить пары operation и id.
- Найти дубли slug.
- Проверить page_template.
- Сверить SEO и meta.
- Исключить неожиданные удаления.
Типичные ошибки
«Для операции нужен ID» при создании
Create ошибочно обрабатывается как update или защищённая операция.
Slug изменился автоматически
В WordPress уже существует объект с таким адресом.
После импорта сменился шаблон
Источники page_template противоречат друг другу.
Контент выводится как сырой код
HTML экранирован дважды или записан не в то поле.
Частые вопросы
Можно ли использовать null вместо нулевого ID?
Да, если версия импортёра это поддерживает. Id: 0 обычно проще проверять автоматически.
Нужно ли сохранять ID при переносе на другой сайт?
Для create на другом сайте — нет. Для update на том же сайте — да.
Можно ли смешивать create и update?
Технически можно, но раздельные пакеты проще проверять и откатывать.
Ошибка, из-за которой create требовал ID
На одном из этапов разработки новая страница попадала в общий валидатор защищённых операций. Валидатор ожидал существующий объект и закономерно требовал ID. Исправление заключалось в разделении маршрутов: create и update обрабатываются как штатные операции, а удаление, корзина, восстановление и validate-only проходят отдельный контроль.
Как платформа защищает шаблон страницы
Поле page_template нормализуется до допустимого значения. Система принимает default, page.php или реально зарегистрированный шаблон темы. Это предотвращает массовую запись произвольного значения в _wp_page_template и потерю корректного отображения страниц.
Связанные материалы
Lana Pages Full JSON полезен строгой логикой операций: create создаёт объект без существующего ID, update изменяет конкретную страницу, а опасные действия отделены от обычного импорта.