分類法(カテゴリ、タグ、カスタム分類法)をエクスポートおよびインポートする方法とその用語


10

Wordpressのすべてのカテゴリ(投稿ではなくカテゴリのみ)をあるブログから別のブログにエクスポートしたい。どうやってやるの ?


ブログの管理パネルから「管理」>「エクスポート」にアクセスしてみましたか。

[管理]メニューはなく、[ツール] / [エクスポート]メニューしかありませんが、カテゴリのみをエクスポートすることはできません
chubbyk

申し訳ありません、私はオンラインのブログからそれを読みました。データベースレベルからそれを行うことができますか?

簡単な作業が必要な場合は、カテゴリのエクスポートプラグインを試してください。wordpress.org/plugins/export-categories

回答:


5

この答えは本質的にアンサルの答えと同じですが、彼の答えは私には役に立たなかったので少し詳しく説明したいと思います(私は過去に行ったことを思い出そうとしていたので、彼の本を読んだはずですもっと注意深く、私はそれを理解したでしょうが、他の人にとっては完全な説明が役立つと思います)。

カテゴリ階層全体をエクスポートするには、「すべてのコンテンツ」をエクスポートする必要があります

他のオプションでは、完全なデータが得られません(たとえば、すべてのカテゴリにタグが付けられた投稿をエクスポートすると、ほとんど機能しますが、階層的な分類に関するすべての親子関係/階層データが失われます)。

「すべてのコンテンツ」をエクスポートすると、結果ファイルには条件に関するデータを含むセクションが含まれます。ファイルを見れば、作成者の後、「アイテム」(つまり、投稿)の前に簡単に見つけることができます。

オプションであれば、これをインポートしてコンテンツを削除できます*

ファイル全体をインポートすると、分類階層が完全に複製されますが、明らかにすべてのページと投稿もインポートされます。数が多すぎない場合は、手動で削除することを検討してください。一括で行い、数が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のカテゴリ一覧画面をチェックして、すべてが期待どおりであることを確認してください。

幸運を!


1
これは、すでに作成されているカテゴリに階層を追加しないことに注意してください。親カテゴリは、まだ存在していないサブカテゴリにのみ割り当てられます。
Zade

4

この問題を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_するテーブルを参照し、ソーステーブルを参照する


2

カテゴリ(または一般的に分類法)のみをエクスポートすることはできません。ツール/エクスポートですべてのコンテンツをエクスポートするだけで、カテゴリーからのコンテンツをxmlから削除できます。


2

ここでの最終目標は何ですか?あるブログから別のブログにカテゴリのリストを取得するだけですか?または、カテゴリ内のすべてのコンテンツを別のWordPressインストールに移動しようとしていますか?

ちょっと見苦しいですが、すべてのコンテンツをエクスポートして、カテゴリ内のコンテンツを削除するか、不要なカテゴリを削除することもできます。それはおそらくあなたの目標へのより速い方法の一つでしょう。


2

データベーステーブルにアクセスできる場合は、wp_term_relationships、wp_term_taxonomy、wp_termsテーブルのmysqlダンプエクスポートを実行し、それらを新しいwordpressインストールにインポートできます。300以上のカテゴリを持つ2つのWPインストール間でこれを実行したところ、問題なく動作しました。


おかげで、これは私の側でうまくいきました。
Nikhil VJ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.