contentrain-migrate-wordpresslisted
Install: claude install-skill Contentrain/ai
# Skill: Migrate a WordPress Site
> WordPress content → canonical `.contentrain` store → validated → typed client or Astro collections.
---
## When to Use
The user wants to move a WordPress site's **content** into Contentrain: "import my WordPress site", "migrate from WP", "I have a WXR export", "pull posts from wordpress.com", "turn this WP blog into Astro".
**This skill moves content, not design.** Themes, page-builder layouts and rendered HTML are a different problem (a full site clone is the Contentrain migration service). What this skill produces is a clean content store the user's own frontend reads.
---
## Steps
### 1. Pick the source
Two sources, and the choice is usually made for you:
| Source | Use when | Command |
|---|---|---|
| **REST URL** | The site is online and `/wp-json/wp/v2/` answers | `npx contentrain import https://example.com` |
| **WXR export** | The site is offline, behind auth, or the user has a `.xml` from Tools → Export | `npx contentrain import ./export.xml` |
REST returns more than WXR (rendered HTML, media metadata, per-type discovery); WXR is complete but rawer. If both exist, prefer REST.
**Private or partial REST.** A site can answer `/wp-json` but hide drafts, private types and some fields. An Application Password lifts the run to `rest_auth`:
```bash
npx contentrain import https://example.com --auth "user:xxxx xxxx xxxx xxxx"
```
Check first, so you tell the user what they will get rather than discovering it after:
```bash
cu