waaseyaa / migrate-source-wordpress
WordPress (WXR) source reader for the Waaseyaa migration platform
Package info
github.com/waaseyaa/migrate-source-wordpress
pkg:composer/waaseyaa/migrate-source-wordpress
Requires
- php: >=8.5
- ext-libxml: *
- ext-xmlreader: *
- waaseyaa/foundation: ^0.1.0-alpha.179
- waaseyaa/migration: ^0.1.0-alpha.179
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.0
- pestphp/pest: ^4.0
- phpstan/phpstan: ^2.0
This package is auto-updated.
Last update: 2026-05-14 22:48:38 UTC
README
Migrate your WordPress site to Waaseyaa.
First-party WordPress source reader for the Waaseyaa migration platform. Imports a WordPress site — posts, pages, users, taxonomies, attachments, comments — from a WXR (WordPress eXtended RSS) export into a Waaseyaa-powered application.
30-second quick start
composer require waaseyaa/migrate-source-wordpress
In your application's migration wiring:
use Waaseyaa\Migrate\Source\WordPress\Migration\WpUsersToAccounts; use Waaseyaa\Migrate\Source\WordPress\Migration\WpPostsToArticles; use Waaseyaa\Migrate\Source\WordPress\Wxr\WxrReader; $reader = new WxrReader('/path/to/wp-export.xml'); return [ (new WpUsersToAccounts($reader, $yourAccountDestination))->definition(), (new WpPostsToArticles($reader, $yourArticleDestination))->definition(), // …users → terms → media → posts → comments, per FR-024 ];
Then:
bin/waaseyaa import:run-all
The runner walks the dependency chain — users → terms → media → posts → comments — and writes idempotently to your destination. See the operator guide for the full step-by-step.
What ships
WxrReader— streaming WXR XML parser (WXR 1.0 / 1.1 / 1.2) with skip-with-warning recovery.- Five source plugins:
WordPressUserSource,WordPressTaxonomySource,WordPressMediaSource,WordPressPostSource,WordPressCommentSource. - Three process plugins:
WordPressShortcodeStrip(with custom rewriter hooks),WordPressOembedExpand(opt-in remote resolution for YouTube/Vimeo/Twitter/Instagram),WordPressMediaRewriteUrl(CDN host allowlist). - Five default migration factories:
WpUsersToAccounts(discards WP passwords + forces reset),WpTermsToTaxonomy,WpMediaToEntities,WpPostsToArticles(renameable example),WpCommentsToEngagement. MediaCopier— idempotent local + HTTP media copy primitive with sha256 verification.
Full inventory: public-surface-map.md.
Compatibility
waaseyaa/migrate-source-wordpress |
waaseyaa/migration substrate |
PHP |
|---|---|---|
0.1.x |
^0.1.0-alpha.179 |
>= 8.5 |
Verifying a clean install
docker run --rm -it php:8.5-cli bash apt-get update && apt-get install -y git unzip libxml2-dev docker-php-ext-install xml xmlreader curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer mkdir /tmp/smoke && cd /tmp/smoke composer init -q --name=test/smoke --no-interaction composer require waaseyaa/migrate-source-wordpress php -r "require 'vendor/autoload.php'; echo class_exists('Waaseyaa\\\\Migrate\\\\Source\\\\WordPress\\\\Wxr\\\\WxrReader') ? 'OK' : 'FAIL';"
Documentation
- Operator guide — for WordPress site owners migrating their content.
- Customization guide — for developers wiring the reader into a Waaseyaa app.
- Public surface map — every stable symbol the package ships, plus error-code constants.
- CHANGELOG.
Mission
This package implements M-005 of the Waaseyaa framework, the first first-party source reader for the migration substrate (ADR 012a).
License
GPL-2.0-or-later.