もう迷わないCSV/XMLを利用したACFの記事一括インポートの決定版
このページは約8分で読み終わります
後で読む
ACFを利用した環境へ記事の一括登録をしたい。
サイトのリニューアルをするにあたり、既存サイトの記事をCSVやXMLから一括登録したいケースが往々にしてあります。それも50や100ページぐらいならまだしも、1000や10,000ページとなると骨が折れます。
例えばこんな時
- CSVやXMLからインポートをしたい
- カスタムフィールドにそれぞれ一括登録したい
- Advanced Custom Fieldsを利用している
- マルチサイト先にインポートをしたい
- カスタム投稿タイプにインポートをしたい
- カスタムタクソノミーにインポートをしたい
- インポート用にプログラムを書くのは嫌だ
そんな願いに対し一発で解決できるプラグイン、それが「WP All Import」です。
無償版の「WP All Import」もあるのですが、Advanced Custom Fieldsに対応したインポートを行うには有料のアドオン($69)が必要となります。
ただ一度購入をすると、期限無制限でアップデート可、サイト数無制限で利用できるのでコスパはとてもいいです。
WP All ImportはACFの何に対応してる?
Advanced Custom Fieldsはそもそも大量のフィールドタイプがあります。 2018年8月現在のフィールドを基準に、WP All ImportのACF Addonは何に対応しているかそれぞれ確認をします。
まずは無償のAdvanced Custom Fieldsのフィールドから。
Text | ○ |
Textarea | ○ |
Range | – |
Checkbox | ○ |
Radio Button | ○ |
Select | ○ |
True / False | ○ |
Button Group | – |
Number | ○ |
○ | |
Password | ○ |
File | ○ |
Image | ○ |
oEmbed | – |
WYSIWYG Editor | ○ |
Color Picker | ○ |
Date Picker | ○ |
Date Time Picker | ○ |
Google Map | ○ |
Time Picker | – |
Accordion | – |
Clone | ○ |
Group | – |
Tab | – |
Link | – |
User | ○ |
Page Link | ○ |
Post Object | ○ |
Relationship | ○ |
Taxonomy | ○ |
Advanced Custom Fieldsの有償アドオンの対応状況
Gallery | ○ |
Repeater | ○ |
Flexible Content | ○ |
Options Page | – |
ほぼほぼ全て必要なフィールドに対応しています。頼もしすぎる。
それ以外では以下のフィールドに対応しているようです。
- Contact Form 7
- Limiter
- Location Map
- PayPal Item
- WP WYSIWYG (WP標準のWYSIWYGですね)
- Gravity Forms
これらのフィールドに対し、予め作成されたCSV、XMLから一括インポートが行えます。その他無償のアドオンが様々提供されていて、国内で有名なもので挙げると「Yoast SEO」「WPML」などのインポートも対応しているようです。
WP All Importの使い方を知りたい
WP All Importはウィザード形式で進めることができ、難しい処理は不要でインポートを実施することができます。また嬉しいことに日本語対応している(そして所々機械翻訳を利用しているようで、壊れている)ので、読み進めるのも簡単です。
Step1 : 取り込みたいCSV/XMLファイルの選択をします
ファイルの選択には以下3つの方法があります。一度アップロード済みの場合、「既存のファイルを使用します」の選択もできますが、初回であれば「ファイルのアップロード」を選択します。
※インポート用のダミーcsvよろしければご利用ください。 (wp-all-import_samplefile.zip)
また「Upload Complete」が表示された後、アップロード先として投稿、固定ページ以外となる、カスタム投稿タイプ、タクソノミー、ユーザーへの選択もできます。
Step2 : 読み込みされたCSVデータの確認
サンプルでは62件の記事データ(62行のcsv)があり、1つ1つ問題がないことをここで確認することができますが、表示崩れがなければそのまま「ステップ3に進みます」を押します。
Step3 : マッピングの適用
ここが一番大切なステップですね。
デフォルトでは左カラムにはアコーディオンメニュー内にWordPressタイトルとWYSIWYGエリアが表示されています。右側にはCSVにより取り込んだフィールドと値が行になって並んでいます。
例えば右側にある「title」という箇所にカーソルを合わせると、左側にドラッグをすることができます。あとはそれをどこに表示させたいか、マッピング作業をここでは行います。
WordPressタイトルの箇所にドラッグすると、自動的に「{title[1]}」のように挿入されます。ここは変数になるので、自動的に他の記事も同様の箇所に同様のルールで入ります。
複合して入れることもできるので、dateをあわせてドラッグすると下記のようにすることもできます。便利ですね。
またフィールドは必ずしも埋める必要はなく、必要になる箇所だけマッピングを行います。
今回はACFを登録していきたいので、「Advanced Custom Fieldsアドオン」を開きます。
すると既にACFで登録されているフィールドグループが表示されるので、該当の投稿/固定ページ/カスタム投稿タイプで呼び出しをしているフィールドグループを選択します。
今回は予めACFで下記のような「meta」というフィールドグループを作成しています。
すると、WP All Importで「meta」を呼び出しすると、同じフィールドが表示されます。
右カラムより挿入させたいところにドラッグをします。画像の指定方法が気になるところですが、テキスト同様ドラッグで問題ありません。
カスタムフィールドのマッピングが終わったら、続いて「その他 投稿のオプション」を開きます。
ここでは、投稿に関する基本情報となる「公開ステータス」「公開日付」「投稿スラッグ」「投稿者」などの指定をすることができます。元の記事が公開済み、下書き、非公開などそれらの情報を引き継ぐこともできます。
公開ステータスを引き継ぐには「XPathで設定」を選びます。
右カラムの「status」をドラッグします。
同様に全て設定が終わったら、「ステップ4に進みます」を押します。
Step4 : インポート設定の保存
作成したインポートの設定をレコードとして保存を行います。
その際の識別子として「Unique Identifier」を入れるよう求められます。
特に気にしなければ「自動検知」を押せば自動で挿入されます。
ここでは自動スケジューリングや、インポート設定のカスタマイズも行えますが、特に変更する必要はないので、そのまま「続行」を押します。
Step5 : インポート前の最終確認
ここまでくるとあとはインポートの実行をするのみです。
「インポートの確認&実行」を押しましょう。
Step6 : インポート完了!
以下の画面が出たら無事終了です。
表示の確認
実際にインポートされた記事の確認をします。
記事を開きます。
正常に
- タイトル
- パーマリンク
- 公開ステータス
- 公開日
- カテゴリ(タクソノミー)
- ACFの画像
- ACFのWYSIWYG
に値が格納されていることが確認できます。
数が少ないとサクッとマッピングが終わり、インポートが行なえます。
一歩踏み込んだ使い方
既にある記事にインポートをしたい
既に登録済みの記事に対して、一部フィールドを新たに追加上書きをしたい場合もあるかと思います。その場合には以下の方法で行うことができます。
Step1にて、既存のアイテムを選択。
Step3にて、タイトル、そして上書きしたいフィールドのみ登録。
Step4にて、下記のように更新するデータのみ選択をし、他のチェックボックスを解除します。
こうすることで更新したい特定のフィールドのみ値を上書きすることができます。
エクスポートはどうしたら?
順番が逆ですが 笑
WordPressからWordPressに移行する場合、エクスポートをする上でいくつかのプラグイン選択肢があります。
ただ実は「WP All Import」の対になる「WP All Export」がきちんとあり、これもウィザード形式でとても使いやすいものになっています。
https://ja.wordpress.org/plugins/wp-all-export/
Pro版も一応あり、以下が可能になりますが記事やユーザーデータの自動バックアップを行わない限り、多くの場合不要と言えそうです。
- DropboxやGoogle Driveなど外部サービスへのエクスポート
- 自動スケジューリング
- エクスポートファイルのフィルタリング
- ユーザーデータのエクスポート
- WooCommerceのデータエクスポート
- カスタム関数の利用
とても便利なプラグインですのでお勧めです。