WordPressで記事の一括投稿をする必要があり
調べた内容を備忘録も兼ねてメモ。
会社で新たに情報サイトをWordPressで構築しており、
オープン時点で数百のページを投稿する必要があるが、
まさか管理画面からひとつずつ投稿する訳にもいかないので
一括投稿の方法を調べてみた次第である。
前職でECサイトの商品を大量に登録する際、
CSVで一括登録をした事は何度かあるので
同じようにWordPressでも出来るだろうと思って調べてみると
どうやらReally Simple CSV Importerというプラグインを
使う事で出来るみたいだ。
参考にしたのは下記のサイト。
http://liginc.co.jp/web/wp/plug-in/58046
http://www.invision-inc.jp/web/wordpress-5/
今回私が作成したCSVの項目は下記。
post_status
→これをpublishで指定しないと下書きで止まる。
post_author
→投稿者のユーザー名を指定。
post_category
→投稿するカテゴリー名を指定。
post_name
→URLになるスラッグを指定。
気にしない場合は割愛しても可。
post_title
→記事のタイトル
post_content
→記事の内容
カスタムフィールド名
→カスタムフィールド名を日本語でそのまま。
波括弧(中括弧)で囲うと説明があるがなくて大丈夫。
Advanced Custom Fieldsで作成したフィールド名そのまま。
post_thumbnail
→アイキャッチ画像に使う画像のファイル名。
実際はCSVのインポートの前に管理画面のメディアから
画像をまとめてアップロードをするので、
そのWebサイト所定のURL+ファイル名
例)http://ドメイン/wp-content/uploads/ファイル名
※アップロードしたファイルを年月ベースのフォルダに整理しない場合
以上です。
エクセルでCSVを作成する場合は文字コードがShift_JISなので
一旦エディタで開いてUTF-8に文字コードを変換して保存し直す必要がある。
私が使ったCSVファイルをサンプルとして下記にアップ。
特に問題なく便利に使えそうだと感じたが、
1点だけ、運用面で懸念点がある。
エクスポートをする際は、
デフォルトではCSVではなくxml形式で吐き出される。
CSVでエクスポートできる別のプラグインも試してみたが、
スラッグ名が取得できなかったりと問題点が散見された。
エクスポートが簡単にはできないと最初から心得たうえで
インポート用のCSVをしっかりバージョン管理する必要があると感じた。
【追記】
文字コード変換ってどうするんや?という人向けに念のため。
Windowsのメモ帳は文字コード指定ができず、
すべてshift_jisで保存されてしまう。
エクセルも同じくshift_jisでしか保存できない。
なのでCrescent EveとかTeraPadとかフリーのエディタを使う。
Crescent Eveの場合、
名前をつけて保存の際に文字コードが選択できる。
流れとしては、エクセルで作成したデータを
名前をつけて保存でファイルの種類を
xlsやxlsxではなく、csvに変更して保存。
この時点での文字コードはshift_jisなので
そのcsvファイルをエディタで開いてから
名前をつけて保存で文字コードをutf-8に指定して保存する。
そのcsvをインポートすればOK。