StingerからCocoonにテーマを変更したらメタディスクリプションとメタキーワードが消えたので一括でコピーする方法

StingerからCocoonにテーマを変更したらメタディスクリプションとメタキーワードが消えたので一括でコピーする方法

本ページはプロモーションが含まれています。

流れを簡単に書くと、

  1. WP All Exportst_keywordsst_descriptionをエクスポート
  2. エクスポートしたCSVファイルをインポート用に加工
  3. Really Simple CSV Importerでインポート

という感じになります。

前提として、WP All ExportReally Simple CSV Importerをインストールしておいてください。

この作業をするにあたって、以下のサイトで勉強しました。ありがとうございます。

http://notnil-creative.com/blog/archives/3465

https://mamachu-design.com/hp/really-simple-csv-importer/

https://hacknote.jp/archives/21948/

WP All Exportでエクスポート

エクスポートする項目

id
st_keyword
st_description
the_page_meta_keywords
the_page_meta_description

最後のthe_page_meta_keywordsthe_page_meta_descriptionは後でインポートするフィールドですが、何か入ってないか確認のためにエクスポートする項目に含めます。

Cocoonに変えてからメタキーワードやメタディスクリプションを設定してない場合は何も表示されません。

インポート用のファイルを作る

Really Simple CSV ImporterがインストールしてあればWordpressのメニューの

wp menu 1

ツールのインポート項目をクリックしたら

wp menu 2

csvという項目があるのでインポートを実行をクリックすると

wp import

Really Simple CSV Importerの画面になります。
赤く囲んだところにあるサンプルファイルのcsvをダウンロードして表計算ソフトで開くと

sample csv

こんな感じに表示されます。

必要な項目

今回はメタキーワードとメタディスクリプションをインポートしたいのでその二つはもちろん必須ですが、そのほかに二つ必須項目があります。

  1. post_id
  2. post_type

この2つです。
post_idは記事つけられている固有のidです。これを参照にして記事を探します。
post_typeはなくてもいいかと思って追加しなかったらインポートに失敗しました。

ということで、

post_id
post_type
the_page_meta_keywords
the_page_meta_description

の4つを用意します。

csvにセットする

csv sample 2
post_idにはエクスポートしたid
post_typeにはpost
the_page_meta_keywordsにはst_keywords
the_page_meta_descriptionにはst_description

を記入します。

記事が多いとタイムアウトになる場合があるので、分割してインポートした方がいいです。
本ブログの場合は180程度の記事数でも時間がかかりすぎて途中でタイムアウトになりました。

インポートする

CSVをインポートのページでファイルを選択ボタンで作成したcsvファイルを選択します。

選択したらファイルをアップロードしてインポートボタンを押します。今回はお試しファイルを使います。

csv import 1

成功した場合

csv import success
成功するとこんな感じです。

失敗した場合

csv import error

post_typeだけを空欄でインポートしたもののエラーをスクショしようとしたら、間違えてpost_idとすべいき項目をidのままでインポートしてしまいました。

注意点

idを元にメタキーワードとディスクリプションを追加するのですが、idが無い場合は新しく記事追加されるそうです。
the_page_meta_keywordsthe_page_meta_descriptionにすでに設定済みの場合は上書きされてしまうので注意いが必要です。

感想

1個づつ入れ直すことなくメタキーワードメタディスクリプションのデータを移行できてよかったです。