とっちゃん@nyanco! です。
WordPressの「カスタム投稿タイプ」にCSVでインポートする時に苦戦したことについて備忘録です。
そもそも「カスタム投稿タイプ」とは?
まず、カスタム投稿タイプとはなんぞや?という方には下記記事が分かりやすく書かれてますのでどうぞ。
以下、私のざっくり理解です。
WordPressデフォルトで使える「投稿」では、以下が投稿できる項目となります。
- タイトル
- 本文(テキスト・画像)
- 投稿日時
- カテゴリー
- タグ
- アイキャッチ画像
「デフォルト投稿タイプ」でも「本文」の欄を使えばHTMLも記述できるし大抵の内容に対応できるのですが、誰が投稿しても同じ体裁の記事にするのは難しいので、そんな時に「カスタム投稿タイプ」を使うイメージです。
例えば下記のような項目名の投稿欄を追加するとします。
- URL
- メールアドレス
- 電話番号
要は投稿内容を細かく区分する感じですね。
「URL」という項目名をみたら「ここはURLを入力する欄なんだな」と誰だって分かるはず。
このように決まった欄に決まった情報を入力するようにしておくと、項目名の通りに情報を入力していけば良いので迷うこともないし、誰が投稿しても同じ体裁になりますよね!
とっても便利な機能だと思います。
CSVインポートにはプラグインを使用
CSVをインポートする際は、「Really Simple CSV Importer」というプラグインを使います。
(WordPressデフォルトではCSVのインポートができないので)
▼「Really Simple CSV Importer」についての関連記事
それでは以下から、インポート時に苦戦した内容です。
【苦戦ポイント 1】雛形となるCSVをエクスポートできない
インポートするCSVはゼロから作るのではなく、まずはダミー記事を作成した上で「WP CSV Exporter」というプラグインを使ってCSVをエクスポートし、それをテンプレートとして使うとそれぞれのCSVにおける項目名と内容が分かって楽なのでいつもそうしているのですが…
「WP CSV Exporter」で「カスタム投稿タイプ」のCSVをエクスポートしようとすると…
Please use Add-Ons to download CSVs for custom post types.
WP CSV Exporter Add-Ons
というメッセージが表示されてできないんですね…
どうも「カスタム投稿タイプ」をエクスポートするには有料アドオンが必要とのことです。
このプラグインの作者は日本の方のようで、その理由が下記ブログに書かれてました。
価格は980円(2019/09/22現在)と個人レベルなら「買っちゃうか!」と思う価格なのですが、業務委託先での作業かつ外部の制作会社に依頼している案件なので、新たに費用が発生すると色々と面倒なのですね。
ということで、インポートするCSVをなんとか自力で作成できないかと色々調べてみることにしました。
【苦戦ポイント 2】CSVの項目名・内容で苦戦
「Really Simple CSV Importer」を使う際のCSVの項目名は下記のように決まっています。
基本、「post_type」だけしっかり設定しておけばそれ以外の項目は空欄またはカラム(列)自体なくてもOKです。
- post_id:記事固有のID。既存のIDを指定すると更新となる
- post_author:投稿ユーザーのIDを指定。
- post_date:投稿日時を指定。空白またはカラム自体なくてもOKで、その場合インポートした日時となる(?未確認)
- post_name:投稿記事のスラッグ(URLの一部になるもの)。空白またはカラム自体なくてもOKで、その場合は「post_title」になる(?未確認)
- post_type:【必須項目】投稿先を指定する(例:「デフォルト投稿:post」、「固定ページ:page」)
- post_status:投稿記事のステータス(draft:下書き、publish:公開)。空白またはカラム自体なくてもOKで、その場合は「draft」になる(?未確認)
- post_title:投稿記事のタイトル。
- post_content :投稿記事の内容。
- post_excerpt :投稿記事の抜粋内容。
- post_parent :投稿内容が親子関係にある場合、親記事のIDを入力。
- menu_order:管理画面上での並び順。
- post_thumbnail:記事のアイキャッチ画像をURLで指定。
- post_category:「デフォルト投稿:post」のカテゴリーを「スラッグ」で指定。カンマ区切りで複数指定可能
- post_tags:「デフォルト投稿:post」のタグを「スラッグ」で指定。カンマ区切りで複数指定可能
- tax_{taxonomy}:「カスタム投稿タイプ」のカテゴリーがある場合「スラッグ」で指定。カンマ区切りで複数指定可能。{}は不要!
- {custom_field_key}:「カスタムフィールド」がある場合はフィールド名を入力。{}は不要!(日本語でもOK)
▼参考記事
「post_type」に入力する内容が分からない
「カスタム投稿タイプ」の記事をインポートする時には「post_type」欄に「カスタム投稿タイプ」の名前を入れなければならないのですが、その名前がどこで確認できるのか分からずにかなり苦戦しました。
色々調べた結果なんとか答えにたどり着けたのですが、なかなか面倒な手順だったので備忘録を残しておきます。
(1) 「カスタム投稿タイプ」にダミー記事を1つ作成しておく。
(2) WordPressの管理画面左メニュー「ツール」→「エクスポート」→「該当するカスタム投稿タイプ名」にチェックして「エクスポートファイルをダウンロード」をクリック。
(3)「xxxxxxxx.WordPress.2019-09-22.xml」のようなファイル名のXMLデータがダウンロードされるので、「メモ帳」アプリを起動して、ダウンロードしたファイルを「メモ帳」アプリのウィンドウにドラッグ&ドロップして開く(メモ帳でなくても、テキストエディター系アプリなら大抵開けるかと思います)。
(4)「post_type」というワードで検索すると下記のような文字列がヒットするはず。
「<wp:post_type><![CDATA[xxxxxxxxxxxxxxx]]></wp:post_type>」
「xxxxxxxxxxxxxxx」の位置の文字列が「カスタム投稿タイプ」の「post_type」となります!
なかなか面倒ですよね…
まぁ一度分かればもう大丈夫なのですが。
「post_category」が反映されない
「post_category」にはカテゴリーのスラッグ名を入力するのですが、「デフォルト投稿:post」のカテゴリーのみということになかなか気づかずかなり時間を取られてしまいました…
「カスタム投稿タイプ」のカテゴリーは「tax_{taxonomy}」というカラムに入力することになります。
「tax_{taxonomy}」の表記の仕方に苦戦
次に、{taxonomy}の部分に入れる名称が分からずに苦戦しました。
この「taxonomy:タクソノミー」という慣れない単語にも悩まされましたが、要は任意で作成できる「カテゴリー」という理解で良さそうです。
調べ方ですが、前項で使用した「xxxxxxxx.WordPress.2019-09-22.xml」をまた使います。
前項の手順(4)で、今度は「category domain」というワードで検索すると、下記のような文字列がヒットするはずです。
<category domain=”xxxxxxxxxxxxxxx” nicename=”カテゴリーのスラッグ”><![CDATA[カテゴリーの日本語表記]]>
「xxxxxxxxxxxxxxx」の位置の文字列が{taxonomy}の部分となります!
また、この {taxonomy} という表記も曲者で、前後の {} は不要だということになかなか気付かず苦戦しました。
つまり、
<category domain=”tax_test” nicename=”カテゴリーのスラッグ”><![CDATA[カテゴリーの日本語表記]]>
の場合だと、
tax_test
となるわけです。
一度分かってしまえばなんてことないですが、分かりにくいですよね…
いやー勉強になりました。
今回は以上となります。
最後まで読んでいただきましてありがとうございました!
それではまた〜✧٩(ˊωˋ*)و✧
コメント
[…] 参考 【WordPress】「カスタム投稿タイプ」にCSVインポートで苦戦した… […]