ナム山

家最高 今年一年でサックスが吹けるようになるか観測中

Wordpressでインポートするデータをいじったらどうなるのか

Wordpressの引越しやリニューアルなどで投稿のカテゴリを一気に見直す機会があった。
その際にエクスポートやインポートでDBの挙動がどういったものになるのか不安だったので実験したメモ。

やることは至ってシンプル。
実験用に同じテーマを読み込んだダミーサイトに、本番サイトのバックアップデータをインポートしていくだけ。
その際、手を加えたらどんな影響が出るか確認するだけ。

1.普通のインポート(1->0)
2.追加・変更がどのくらい反映されるか(1'->1)
3.まったく別物をインポートする(1->2)
※本番->ダミーサイト

結論から言うと投稿を全部ゴミ箱から削除してインポートすれば一番安全だしわかりやすい。
元も子もないがな。
それでは各項目確認していく。

1.
まっさらなDBにインポートする。
問題なくインポートされる。
カテゴリーもタグも設定されるが、挙動は【追加】なので「未分類」カテゴリーとかは残る。
あとは言われているようにメディアやプラグインの設定は追加されないので各種追加読み込みは必要。

2.
特定の記事の「タグを追加」、「カテゴリーを変更」した上で書き出したものを読み込んでみたらうまくいった。

2+α.
しかし本文の内容をごっそり削除して読み込んでみたけどうまくいかなかった。
先述の通り追加していく挙動らしく、新しい内容で取って代わることはなさそう。

3.
同じく本番データを1記事以外ごっそり消してタイトルも変えてインポートしてみた。
残念ながらダミーサイトのもともと登録されていた他の記事はがっつり残っていた。
細やかに該当記事のタイトルが差し代わっただけ。

わかったこと

DBの挙動は【追加】
もともと登録されていたものを消す、といったことはDBの上書きではできない。
つまりバックアップデータを読み込み直して、まっさらな内容に取って代わることはない。
代わりにカテゴリーとか、タイトルとか、単一項目は差し代わった。
A,B,Cの記事が読まれているサイトに、Dの記事だけのデータを読み込んでもABCは残ったまま。

・投稿内容程度なら全部捨て去って読み込み直した方が確実
いや元も子もないがな!

おまけ

バックアップデータのxmlはざっくりダッシュボードの設定順に並んでいる。
siteの内容、authorの配列、カテゴリーの配列、タグの配列、記事の内容...etc
試しに「お知らせ」のようなカテゴリーの名前を一番最初の設定部分で変更してみる
「記事の種類(kind)」>「お知らせ(info)」みたいなカテゴリーだとする。

<wp:category>
	<wp:term_id>555</wp:term_id>
	<wp:category_nicename><![CDATA[info]]></wp:category_nicename>
	<wp:category_parent><![CDATA[kind]]></wp:category_parent>
	<wp:cat_name><![CDATA[お知らせ]]></wp:cat_name>
</wp:category>

phpで配列返してやると返してくれる内容と同じ。

ここでcat_name「お知らせtest」とかに変更すると、インポートあと確認すると該当記事のカテゴリ名前は全部差し代わっていた。
まあダッシュボードでやればええと言う話。
元も子もないがな!

しかしリニューアルとかでごっそり差し替える時は、データの方で一括置換してあげれば良いのでわかりやすそう。