コンテンツをエクスポート
WordPressで、ツール → エクスポートに移動し、完全なエクスポートファイル(.xml)をダウンロードします。
EmDashはWordPressからの完全な移行パスを提供します。投稿、ページ、メディア、タクソノミーを管理ダッシュボードからインポートできます。CLIは不要です。
まずより高レベルな移行の概要を知りたい場合は、WordPressからAstroへ(EmDashを使用)とEmDash vs WordPressをお読みください。
コンテンツをエクスポート
WordPressで、ツール → エクスポートに移動し、完全なエクスポートファイル(.xml)をダウンロードします。
サイトをバックアップ
移行が成功したことを確認するまで、WordPressサイトを稼働させたままにしてください。
EmDashはWordPressコンテンツのインポートに3つの方法をサポートしています:
| 方法 | 最適な用途 | 下書きを含む | 認証が必要 |
|---|---|---|---|
| WXRファイルアップロード | 完全な移行 | はい | いいえ |
| WordPress.com | WordPress.comでホストされたサイト | はい | OAuth |
| REST API (プローブ) | エクスポート前のコンテンツ確認 | いいえ | オプション |
ほとんどの移行にはWXRファイルアップロードが推奨されます。下書き、カスタムフィールド、非公開投稿を含むすべてのコンテンツを取得します。
WordPressからエクスポート
WordPress管理パネルで、ツール → エクスポート → すべてのコンテンツ → エクスポートファイルをダウンロードに移動します。
インポートウィザードを開く
EmDashで、管理 → 設定 → インポート → WordPressに移動します。
エクスポートファイルをアップロード
.xmlファイルをドラッグ&ドロップするか、クリックして参照します。ファイルはブラウザ内で解析されます。
検出されたコンテンツを確認
ウィザードは検出された内容を表示します:
Found in export:├── Posts: 127 → posts [New collection]├── Pages: 12 → pages [Add fields]└── Media: 89 attachmentsマッピングを設定
インポートする投稿タイプを切り替えます。EmDashは自動的に:
インポートを実行
コンテンツをインポートをクリックします。各項目が処理されるにつれて進捗が表示されます。
メディアをインポート(オプション)
コンテンツのインポート後、メディアファイルをダウンロードするか選択します。EmDashは:
EmDashはGutenbergブロックをPortable Text(構造化コンテンツ形式)に変換します。
| Gutenbergブロック | Portable Text | 注記 |
|---|---|---|
core/paragraph | block style=“normal” | インラインマークは保持 |
core/heading | block style=“h1-h6” | ブロック属性からのレベル |
core/image | image block | メディア参照が更新 |
core/list | block with listItem type | 順序付きと順序なし |
core/quote | block style=“blockquote” | 引用元を含む |
core/code | code block | 言語属性を保持 |
core/embed | embed block | URLとプロバイダーを保存 |
core/gallery | gallery block | 画像参照の配列 |
core/columns | columns block | ネストされたコンテンツを保持 |
| 不明なブロック | htmlBlock | レビューのため生のHTMLを保持 |
不明なブロックは、元のHTMLとブロックメタデータを含むhtmlBlockとして保存されます。これらを手動でレビュー・変換するか、カスタムPortable Textコンポーネントを作成してレンダリングできます。
クラシックエディターからのHTMLはPortable Textブロックに変換されます。インラインスタイル(<strong>、<em>、<a>)はスパン上のマークになります。
| WordPressステータス | EmDashステータス |
|---|---|
publish | published |
draft | draft |
pending | pending |
private | private |
future | scheduled |
trash | archived |
カテゴリーとタグは、階層を保持したタクソノミーとしてインポートされます:
WordPress: EmDash:├── Categories (hierarchical) ├── taxonomies table│ ├── News │ ├── category/news│ │ ├── Local │ ├── category/local (parent: news)│ │ └── World │ ├── category/world (parent: news)│ └── Sports │ └── category/sports└── Tags (flat) └── content_taxonomies junction ├── featured ├── tag/featured └── breaking └── tag/breakingWordPressの投稿メタとACFフィールドはインポート中に分析されます:
分析フェーズ
ウィザードはカスタムフィールドを検出し、EmDashのフィールドタイプを提案します:
Custom Fields:├── subtitle (string, 45 posts)├── _yoast_wpseo_title → seo.title (string, 127 posts)├── _thumbnail_id → featuredImage (reference, 89 posts)└── price (number, 23 posts)フィールドマッピング
内部WordPressフィールド(_edit_、_wp_で始まる)はデフォルトで非表示になります。SEOプラグインフィールドはseoオブジェクトにマッピングされます。
タイプ推論
EmDashは値からフィールドタイプを推論します:
number"1"、"0"、"true"、"false" → booleandatejson_thumbnail_id) → referenceインポート後、EmDashはリダイレクトマップを生成します:
{ "redirects": [ { "from": "/?p=123", "to": "/posts/hello-world" }, { "from": "/2024/01/hello-world/", "to": "/posts/hello-world" }, { "from": "/category/news/", "to": "/categories/news" } ], "feeds": [ { "from": "/feed/", "to": "/rss.xml" }, { "from": "/feed/atom/", "to": "/atom.xml" } ]}これらのリダイレクトを以下に適用します:
astro.config.mjs内のredirectsオプションWordPressパターンをEmDashに適応させる際に、この表を使用してください:
| WordPress | EmDash | 備考 |
|---|---|---|
register_post_type() | 管理UI内のコレクション | ダッシュボードまたはAPI経由で作成 |
register_taxonomy() | タクソノミーまたは配列フィールド | 複雑さによる |
register_meta() | コレクションスキーマ内のフィールド | 型付き、キーバリューではない |
WP_Query | getCollection(filters) | ランタイムクエリ |
get_post() | getEntry(collection, id) | エントリーまたはnullを返す |
wp_insert_post() | POST /_emdash/api/content/{type} | REST API |
the_content | <PortableText value={...} /> | Portable Textレンダリング |
add_shortcode() | Portable Textカスタムブロック | カスタムコンポーネントレンダラー |
register_block_type() | Portable Textカスタムブロック | ショートコードと同じ |
add_menu_page() | プラグイン管理ページ | /_emdash/admin/配下 |
add_action/filter() | プラグインフック | hooks.content:beforeSave |
wp_options | ctx.kv | キーバリューストア |
wp_postmeta | コレクションフィールド | 構造化、キーバリューではない |
$wpdb | ctx.storage | 直接ストレージアクセス |
| Categories/Tags | タクソノミー | 階層サポートは維持される |
WordPressインポートは管理ダッシュボードとREST APIから利用可能です。最適な体験のためには管理ダッシュボードのインポートウィザードを使用してください — フィールドマッピング、競合解決、進捗追跡を提供します。
インポートAPIエンドポイントはプログラムによるアクセスのために /_emdash/api/import/wordpress/ 配下にあります。
エクスポートファイルが破損しているか不完全です。WordPressから再エクスポートしてください。
一部の画像が認証の背後にあるか、移動している可能性があります。インポートは継続され、失敗したURLは手動処理のためにログに記録されます。
既存のコレクションに互換性のない型のフィールドがある場合、インポートウィザードが競合を表示します。以下のいずれかを選択してください:
100MBを超えるエクスポートの場合、以下を検討してください:
--resume オプション付きでCLIを使用する