Wordpressのすべてのカテゴリ(投稿ではなくカテゴリのみ)をあるブログから別のブログにエクスポートしたい。どうやってやるの ?
Wordpressのすべてのカテゴリ(投稿ではなくカテゴリのみ)をあるブログから別のブログにエクスポートしたい。どうやってやるの ?
回答:
この答えは本質的にアンサルの答えと同じですが、彼の答えは私には役に立たなかったので少し詳しく説明したいと思います(私は過去に行ったことを思い出そうとしていたので、彼の本を読んだはずですもっと注意深く、私はそれを理解したでしょうが、他の人にとっては完全な説明が役立つと思います)。
カテゴリ階層全体をエクスポートするには、「すべてのコンテンツ」をエクスポートする必要があります
他のオプションでは、完全なデータが得られません(たとえば、すべてのカテゴリにタグが付けられた投稿をエクスポートすると、ほとんど機能しますが、階層的な分類に関するすべての親子関係/階層データが失われます)。
「すべてのコンテンツ」をエクスポートすると、結果ファイルには条件に関するデータを含むセクションが含まれます。ファイルを見れば、作成者の後、「アイテム」(つまり、投稿)の前に簡単に見つけることができます。
オプションであれば、これをインポートしてコンテンツを削除できます*
ファイル全体をインポートすると、分類階層が完全に複製されますが、明らかにすべてのページと投稿もインポートされます。数が多すぎない場合は、手動で削除することを検討してください。一括で行い、数が100未満であれば、それほど長くはかかりません([投稿の編集]画面の[画面オプション]を使用して、デフォルトより多くを表示し、一度に複数を一括編集できることを覚えておいてください)。
コンテンツが多すぎてすべて削除できない場合は、WXRファイルを手動で編集して、残しておきたい用語以外をすべて削除する必要があります。
WXRファイルを編集してコンテンツを削除する
これは少し難しいかもしれませんが、実際にファイルの内容を見ると、各要素の機能を理解するのはそれほど難しくありません。XMLはタグ付きのHTMLに似ているので、主な注意点は、開始タグなどを残したまま終了タグを削除しないことです。
WXRには1〜3種類の用語定義があり、1つはカテゴリ、1つは「タグ」、1つは「用語」です。「カスタム分類法」は用語を使用しますが、昔ながらのカテゴリとタグは独自の特別なフォーマットを持っています。
カテゴリーの例
<wp:category><wp:term_id>8880</wp:term_id><wp:category_nicename>runner-up-proposals</wp:category_nicename><wp:category_parent>second-round-proposals</wp:category_parent><wp:cat_name><![CDATA[Runner-up Proposals]]></wp:cat_name></wp:category>
タグの例
<wp:tag><wp:term_id>122</wp:term_id><wp:tag_slug>ave-maria</wp:tag_slug><wp:tag_name><![CDATA[Ave Maria]]></wp:tag_name></wp:tag>
カスタム分類用語の例
<wp:term><wp:term_id>8579</wp:term_id><wp:term_taxonomy>gv_tools</wp:term_taxonomy><wp:term_slug>digital-video</wp:term_slug><wp:term_parent></wp:term_parent><wp:term_name><![CDATA[Digital Video]]></wp:term_name></wp:term>
したがって、あなたがしたいことは、これらのカテゴリー/タグ/用語タグ以外のすべてのコンテンツをWXRファイルから削除することです。つまり、前に来るwp:authorタグと後に来る多くのitemタグです。最も重要なのは、下部にある/ channelおよび/ rssの終了タグを削除しないことです。それらがないと、XMLは検証されません。
明らかに、実際の Webサイトで使用する前に、編集したファイルのインポート結果をテストします。ローカルに新規インストールにインポートして、完全に失敗するかどうかを確認してから、wp-adminのカテゴリ一覧画面をチェックして、すべてが期待どおりであることを確認してください。
幸運を!
この問題を2つのクエリで解決しました。
これは私が考える最良の方法ではありませんが、確かに最も安全ではありません。さらに、同じデータベースで作業していることを前提としています(そうでない場合は、クエリを簡単にエクスポートして、別のデータベースにインポートできます)。
私は空のワードプレスのインストールでそれを使用しました:
1-カテゴリの用語をインポートします。
INSERT INTO newwp_terms
SELECT te.*
FROM oldwp_terms te
JOIN oldwp_term_taxonomy ta
ON te.term_id = ta.term_id
WHERE ta.taxonomy = 'category'
;
2-インポートカテゴリの関係と説明
INSERT INTO newwp_term_taxonomy
SELECT term_taxonomy_id,term_id,taxonomy,description,parent,0
FROM oldwp_term_taxonomy ta
WHERE ta.term_taxonomy_id IN
(
SELECT ta2.term_taxonomy_id
FROM oldwp_terms te
JOIN oldwp_term_taxonomy ta2
ON te.term_id = ta2.term_id
WHERE ta.taxonomy = 'category'
)
;
[A]とにかくnewwp_
インポートoldwp_
するテーブルを参照し、ソーステーブルを参照する
カテゴリ(または一般的に分類法)のみをエクスポートすることはできません。ツール/エクスポートですべてのコンテンツをエクスポートするだけで、カテゴリーからのコンテンツをxmlから削除できます。