Really Simple CSV ImporterでWordPressのカスタムフィールド(Smart Custom Fields)の繰り返しフィールドにデータをインポートする方法

カスタムフィールドのプラグインは Smart Custom Fields を使っています。
CSVをインポートするプラグインは Really Simple CSV Importer を使いました。

Smart Custom Fields は、繰り返しフィールドが使えるので大変重宝しているプラグインです。今回、カスタムフィールドの繰り返しフィールドをCSVで一括登録したく、インポートする方法を探していた所、Really Simple CSV Importer のアドオンをインストールすることでインポートすることができました。

Really Simple CSV Importer の開発者さんが作ったアドオン↓をダウンロードして、WordPressのプラグインにインストールします。
Divide Meta Fields with Comma (Really Simple CSV Importer add-on) · GitHub

Smart Custom Fields で繰り返しフィールドを作ります。
Smart Custom Fieldsで作った繰り返しフィールド

CSVファイルの繰り返しフィールドにしたい箇所にカンマ区切りで値を入力します。
CSVファイルの入力例です。
Really Simple CSV Importerの繰り返しフィールドの書き方

CSVファイルをインポートした後の、投稿画面のカスタムフィールドです。
繰り返しフィールドがインポートされた投稿画面

インポートした繰り返しフィールドを出力します。

<table>
  <tr>
    <th>ニックネーム</th>
    <th>年齢</th>
    <th>性別</th>
  </tr>
<?php
  $repeat_group = SCF::get( 'join' );
  foreach ( $repeat_group as $field_name => $field_value ) {
?>
  <tr>
    <td><?php echo esc_html( $field_value['nickname'] ); ?></td>
    <td><?php echo esc_html( $field_value['age'] ); ?></td>
    <td><?php echo esc_html( $field_value['sex'] ); ?></td>
  </tr>
<?php } ?>
</table>

このコードで出力されたのが↓になります。
繰り返しフィールドの出力結果

画像を繰り返しフィールドにインポートする方法

画像の場合は、画像のIDをカンマ区切りにすることで、繰り返しフィールドにインポートできます。
Smart Custom Fields で、↓のような画像の繰り返しフィールドを作った場合
繰り返し画像のカスタムフィールド

CSVファイルは、↓のように「scf_photo」に画像のIDをカンマ区切りで入力します。
繰り返し画像の場合のReally Simple CSV Importerの書き方

そして、CSVファイルをインポートすると、↓のように画像を繰り返しフィールドにインポートできます。
画像の繰り返しフィールドがインポートされた投稿画面

後は例えば、↓のようにすると、インポートした画像を出力できます。

<ul>
<?php
  $repeat_group = SCF::get( 'photo-repeat' );
  foreach ( $repeat_group as $field_name => $field_value ) {
?>
<?php
  $image_attributes = wp_get_attachment_image_src( $field_value['photo'] );
  $image_alt = get_post_meta( $field_value['photo'], '_wp_attachment_image_alt', true );
?>
  <li><img src="<?php echo $image_attributes[0]; ?>" width="<?php echo $image_attributes[1]; ?>" height="<?php echo $image_attributes[2]; ?>" alt="<?php echo esc_attr( $image_alt ); ?>"><br>
    <?php echo esc_html( $field_value['text'] ); ?></li>
<?php } ?>
</ul>

画像のIDの確認方法

「メディア→ライブラリ」のグリッド表示から、IDを確認したい画像をクリックします。
メディアライブラリから画像IDを確認

そうすると、↓のようにURLから画像のIDを確認できます。
URLから画像IDを確認できます

“Really Simple CSV ImporterでWordPressのカスタムフィールド(Smart Custom Fields)の繰り返しフィールドにデータをインポートする方法” への6件の返信

  1. はじめまして!検索で記事に辿り着きました。SCFとRSCSVインポーターと繰り返しフィールドの組み合わせを扱っている記事はほぼ無く、路頭に迷っていた時に、昨日投稿されたばかりの記事を見つけました!書いてある通りに試したところあっさりインポートできました!素晴らしい記事を書いていただき、どうもありがとうございました!

    1. minさん、コメントありがとうございます。
      繰り返しフィールドのCSVインポートの記事ってないですよね。僕もWEBを徘徊し、解決するまで苦労したので記事にしてみました。
      お役に立てたようでよかったです。

  2. 検索して検索してインポートまわりの知識を少しずつ吸収してはいるのですが、WordpressやPHPはまだまだ難しいです。。

    さらにRS CSV Importer Media Add-Onを追加しての画像の繰り返しフィールドなのですが、
    今回の記事と同様にカンマ区切りで画像のURLを記入しても、画像が取り込まれません。。
    もしよろしければ、画像の繰り返しフィールドのCSVインポートの記事などは、
    お願いできませんでしょうか?

    1. minさん、こんばんは。
      画像の場合は、画像のIDをカンマ区切りにすることで、繰り返しフィールドにインポートできますよ。
      一応、記事に追記しましたので、ご確認ください。

  3. IDの数字のカンマ区切りで取り込めてしまうのですね。。

    人によりプラグインの組み合わせが違うので、自分の探している組み合わせで解説があると、
    本当に助かります。。
    画像URLのCSVから管理画面+記事に画像表示が出来るようになりましたら、
    私も挑戦記事でも公開してみようかと思います!^^
    度々のお願いを聞いていただき、ほんとうにありがとうございました!

    1. minさん、こんにちは。
      画像のURLからインポートすることがご希望だったんですね。
      URLから、繰り返しフィールドへのインポートができましたら、是非記事を公開して教えてください。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です