web-dev-qa-db-ja.com

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

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

10
chubbyk

この答えは基本的にÜnsalのものと同じですが、私は少し詳しく述べたいのですが、彼の答えが正しいにもかかわらず私には役に立たなかったからです。もっと注意深く、私はそれを考え出したであろう、しかし私は他の人たちのために完全な説明が役に立つだろうと思う。

カテゴリ階層全体をエクスポートするには、 "All Content"をエクスポートする必要があります /

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

「すべてのコンテンツ」をエクスポートすると、結果ファイルには自分の用語に関するデータのセクションがあります。ファイルを見てみると、作者の後で「アイテム」の前(つまり投稿)に見つけるのは簡単です。

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

フルファイルをインポートすると、分類階層が完全に複製されますが、明らかにすべてのページと投稿もインポートされます。あまり多くない場合は、手動で削除することを検討してください。一括して数百人に満たない場合はそれほど時間はかかりません(デフォルトよりも多く表示するために[投稿の編集]画面の[画面オプション]を使用して、一度に複数の一括編集を行うことができます)。

すべてを削除するにはコンテンツが多すぎる場合は、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のカテゴリー一覧画面をチェックして、すべてがあなたの予想通りになっていることを確認してください。

がんばろう!

4
jerclarke

私は2回の質問でこの問題を解決しました。

これは私が思う最良の方法ではありませんが、確かに 最も安全な ではありません。さらに、同じデータベースで作業していることを前提としています(そうでない場合は、クエリを簡単にエクスポートしてから別のデータベースにインポートできます)。

empty wordpressのインストールで使用しました。

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] nyway newwp_はインポート先のテーブルを表し、oldwp_はソーステーブルを表す

4
Dalen

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

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

2
tollmanz

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

2
Ünsal Korkmaz

データベーステーブルにアクセスできる場合は、wp_term_relationships、wp_term_taxonomy、wp_termsテーブルのMySQLダンプエクスポートを実行して、それらを新しいワードプレスインストールにインポートできます。私はちょうど300以上のカテゴリを持つ2つのWPインストールの間にこれをしました、そして、それはうまくいきました。

1
Rocco The Taco