WordPressのReally Simple CSV Importerを使って固定ページをインポートする方法

WordPressの投稿を一括で登録したい。そんなときはcsvでインポートしちゃいましょう。プラグインのReally Simple CSV Importerを使えばかんたんに一括登録できます。今回は固定ページの一括登録方法です。と言っても、普通の投稿やカスタム投稿でも方法は同じです。
プラグインインストール
管理画面からReally Simple CSV Importerをインストールして、有効化してください。
csv作成
登録用のcsvを作成します。csvのファイル形式はutf-8じゃないとダメです。MicrosoftのExcelだとutf-8で出力できません。Googleスプレッドシートで作成しましょう。
Googleスプレッドシートの使い方
使い方といってもExcelと同じです。表を作成し、csvで保存するだけです。Googleのアカウントさえあれば無料で使えます。
csvの作り方
csvの作り方はかんたんです。スプレッドシートの1行目にインポートする項目名を入力し、2行目以降にデータを入力します。
固定ページヘッダー行でよく使いそうなものは以下のとおりです。
- post_content: 投稿本文。
- post_title: 投稿タイトル。
- post_status: 投稿公開状態。‘publish’、‘draft’など。
- post_name: 投稿のスラッグ。
- post_parent: (親子関係があれば)投稿の親ID。
- menu_order: 並び順。
- post_type: ‘page’。
- {custom_field_key}: カスタムフィールド名をそのままヘッダーに入力する。
- _wp_page_template: 固定ページテンプレートファイル名を指定する。
その他はプラグイン公式ページをご参照ください。
必須項目はpost_typeのみです。あとは必要な項目のみ入力してください。(不要項目はヘッダー項目名も入力しない)。省略した項目は自動で登録されます(例、投稿日時:インポート実行日時、投稿者:管理画面ログインユーザ)
固定ページ用csv入力例
以下がスプレッドシートで入力した例です。列の順番は自由です。

- post_parent: 階層構造がある場合、親の投稿IDを指定します。例では親の固定ページである会社説明ページの投稿IDが622です。
- post_type: 固定ページの場合、'page'です。
- post_status: 公開済みにする場合、'publish'です。
- page_css: カスタムフィールドです。'page_css'というカスタムフォールド名で、固定ページ用のcssを読み込む想定です。
- _wp_page_template:固定ページでオリジナルのテンプレートを指定する場合です。入力内容はオリジナルテンプレートのファイル名です。例では「会社情報テンプレート」である、'page-company.php'です。

入力できたらスプレッドシートの、ファイル − 形式を指定してダウンロード − カンマ区切りの値(.csv、現在のシート)を選択し、保存します。
csvインポート
csvインポート方法です。
- 管理画面のツール − インポートをクリックします。インポートメニューからCSVをクリックします。
- CSVをインポート画面にて、作成したcsvファイルを選択し、アップロードします。
完了したら固定ページを確認してみてください。
入力内容にカンマを含めたい場合は?
Really Simple CSV Importerにはフィルターフックが用意されています。functions.phpに追加することで、管理画面からインポートするとき、投稿データ登録前に処理を割り込ませて、データを加工することができます。
フィルターフックは以下のものがあるようです。
- really_simple_csv_importer_save_post(投稿保存前)
- really_simple_csv_importer_save_meta(カスタムフィールド保存前)
- really_simple_csv_importer_save_tax(カテゴリ保存前)
- really_simple_csv_importer_save_thumbnail(画像保存前)
カスタムフィールドの値をカンマ区切りで入力する方法
例、csvのカスタムフィールドは"–"で入力し、インポート前に','に変換する
function really_simple_csv_importer_save_meta_filter( $meta, $post, $is_update ) {
if (isset($meta['custom_item'])) {
$meta['custom_item'] = str_replace('--', ',', $meta['custom_item']);
}
return $meta;
}
add_filter( 'really_simple_csv_importer_save_meta', 'really_simple_csv_importer_save_meta_filter', 10, 3 );
$meta['カスタムフィールド']でカスタムフィールドを指定し、'–'を','に置換しています。
まとめ
いかがでしょうか。Really Simple CSV Importerの使い方を解説したサイトはたくさんあるのですが、固定ページのテンプレート指定方法とcsvフィールド内にカンマを含めたい場合の情報がなかなか見つからなかったので今回記事にしました。お役に立てれば幸いです。
Comment
こんにちは。
私もこちらのプラグインを使用して、ワードプレスのページを作成しております。
今回、新たに「ページ属性」の「親:post_parent」と「テンプレート:_wp_page_template」を指定したかったので、タグの書き方についての記事を探していたところ、こちらのサイトを発見いたしました。
タグの書き方や解説など、簡潔かつ丁寧で大変分かりやすく参考になりました。
しかしながら、なぜか上手く反映できず、あれこれいじってはみてるのですが、解決できず相談させて頂いた次第です。
CSV自体のインポートは成功しており、記事も問題なく作成されていますが、上記の2つのタグだけ、反映されておらず、デフォルトのままになっています。
代わりに、もともと固定ページ編集画面にある「カスタムフィールド」の「名前」に「post_parent」、値に「入力した親ページID」が表示されている状態です。
テンプレートに関しては、どこにも反映されておりません。
tantan様の作成された「親:会社説明」と「テンプレート:会社情報テンプレート」は、問題なく反映されてページが作成されていると存じますが、私の場合、なぜ反映されないのか、おわかりになりませんか?
何かアドバイス頂ければとても助かります(T_T)
こんばんは。ご覧いただきありがとうございます。post_parentがカスタムフィールドとして認識されてしまっているのですね。確認するとしたら、親固定ページが存在するか、idは正しいか、post_parentの綴りが合ってるかなどでしょうか。
はっきりしたことがわからず申し訳ないのですが、元となるcsvが怪しそうです。エクセルで作ってて変な書式が入ってるとか、関係ないはずですが、列の順番を変えて作り直してみるなど試してみてはいかがでしょうか。
tantan様、お忙しい中、ご返信下さりありがとうございます。
結果、解決いたしました!
原因は、タグをコピペした際に、各タグの後ろに半角スペースが入っていたという初歩的なことでございました。
tantan様の「綴が・・」という点で、コピペだし問題はないはず・・・と再確認していたら・・・でございました。
現在は完璧に反映されて記事の作成が出来ました。
お騒がせして申し訳ございません。
これからも、こちらの記事を参考にさせて頂きます。
ありがとうございましたm(__)m
解決したのですね。ご報告ありがとうございます。半角スペース入りがちですよね。参考になってよかったです。
[…] WordPressのReally Simple CSV Importerを使って固定ページをインポートする方法 […]
データベースに投稿を追加できませんでした
WP_Postオブジェクトがセットされていません。
上記の様なコメント出てインポート出来ませんでした?
どの様に対応したらよろしいか教えて下さい。
宜しくお願い致します。
返事遅くなって申し訳ありません。アップロードしたcsvファイルの文字コードがutf-8になっていないかもしれません。一度ご確認ください。