посмотри в архиве данные для записей. там есть до...
Создано: 21 сентября 2026 г.
Отвечено с использованием GPT-5.6 Thinking от Chat01
Создано: 21 сентября 2026 г.
Отвечено с использованием GPT-5.6 Thinking от Chat01
посмотри в архиве данные для записей. там есть документ ворд с содержанием записи и инструкцией, фото.
в итоге нам нужно получить публикацию такого плана как на скриншоте. все публикации будут в одном формате. паспорт,
что поступило в ремонт и ниже заголовки h2, галереи. прикрепляю пример в экспорте такой публикации. в вордовском файле есть инструкции куда какие фото идут, есть ссылка, ее нужно использовать для url записей в экспорте.
получается нам нужно написать на php программу обработчик, которая из папки будет брать публикации расфасованные по папкам как я тебе показала и на основе этого сформирует файл для экспорта.
напиши мне программку и пошаговый план как это все сделать локально. папок 200 штук, в каждой 1 публикация. можн обрабатывать частями
Да. Я посмотрел архив, структуру article.docx, article.json, фотографии и ваш пример WordPress Export XML. Под это уже собрал рабочий PHP-обработчик и прогнал его на трёх папках из архива: получилось 3 записи + 36 вложений, XML корректно разбирается как WXR.
Отдельно: build-wxr.php · config.example.php · подробная инструкция README · пример сформированного XML · пример отчёта CSV
Она берет каждую подпапку как одну публикацию и сама:
Источник: https://www.1grc.ru/post/...;.../post/remont-detalej-buldozera-cat →https://mehpark.ru/praktika-remonta/remont-detalej-buldozera-cat;Краткое описание записывает в excerpt;_mehpark_passport_*;mehpark_repair_topic;Для ваших 200 папок специально сделана пакетная обработка через --limit и --offset.
Распакуйте все 200 папок, например в C:\mehpark-import\input. Внутри должны лежать именно папки публикаций с article.docx, фотографиями и, желательно, article.json.
Распакуйте мой комплект, скопируйте config.example.php в config.php. Основные параметры сайта уже стоят под ваш вариант: https://mehpark.ru и /praktika-remonta.
Проверьте, что PHP запускается:
bashphp -v
Никакой PhpWord ставить не требуется — DOCX программа читает сама.
bashphp build-wxr.php --input="C:\mehpark-import\input" --output="C:\mehpark-import\out\test.xml" --limit=5 --offset=0 --status=draft --media=source
На выходе получите test.xml и test-report.csv.
В WordPress откройте Инструменты → Импорт → WordPress, загрузите test.xml, сопоставьте автора с admin и обязательно включите «Скачать и импортировать вложения». После этого проверьте несколько записей: slug, обложку, паспорт, направления, H2 и галереи.
Если всё нормально, запускайте партиями, например по 20:
bashphp build-wxr.php --input="./input" --output="./out/batch-01.xml" --limit=20 --offset=0 --status=draft --media=source php build-wxr.php --input="./input" --output="./out/batch-02.xml" --limit=20 --offset=20 --status=draft --media=source php build-wxr.php --input="./input" --output="./out/batch-03.xml" --limit=20 --offset=40 --status=draft --media=source
Дальше соответственно offset=60, 80, 100 и т. д. Если после проверки хотите сразу публикации, меняете --status=draft на --status=publish.
ready_for_publish=false и в Word стоит «В источнике не указано» в разделе «Что сделали». Такие записи не теряются, но в отчете явно помечаются для ручной проверки.Формат WordPress WXR не умеет положить сами бинарные JPEG/WebP внутрь XML. XML содержит URL, по которым WordPress затем скачивает изображения.
Поэтому я сделал два режима.
--media=source использует source_url фотографий из вашего article.json. Для присланного архива этот режим уже работает.
Если же на локальных фотографиях были сделаны изменения — например, убран логотип и нужно импортировать именно локальную обработанную версию, используйте:
bash--media=public --media-base="https://mehpark.ru/tmp-import/batch-01"
Перед этим фотографии партии надо временно выложить туда с сохранением структуры папок. WordPress скачает их в Media Library, после чего временный каталог можно удалить. Просто localhost здесь не подойдет, если импорт идет на удаленный mehpark.ru.
Ещё один нюанс: из вашего эталонного XML я смог точно определить ID направлений Грузовики = 17 и Передние мосты и балки = 26. Для остальных направлений программа импортирует taxonomy по имени/slug, но в config.php ID пока оставлены пустыми. Если ваш плагин обязательно использует также _mehpark_direction_ids, лучше один раз заполнить реальные ID всех направлений. Это уже предусмотрено в конфиге.
Я бы на вашем месте сначала импортировал именно созданный мной тестовый XML на 3 записи в черновики. Так мы сразу увидим, полностью ли ваш текущий шаблон/плагин принимает паспорт и направления именно так, как ожидается, прежде чем прогонять все 200.