この実装、面倒なら代行します
サイトの移行や記事に新しい属性を追加するときに、「カスタムフィールドを含む記事レコードの一括インポート」をする方法について、以前紹介したことがあります。
その紹介記事の中では、内容を単純にするために、カスタムフィールドのタイプは「テキスト」一種類として紹介しましたが、今回はカスタムフィールドのタイプに「複数選択ありのチェックボックス」が含まれるケースについて、以前の紹介記事の追加情報としてご紹介したいと思います。
したがって、事前に「カスタムフィールドを含む記事レコードの一括インポート」を読んだうえで今回の事例をご覧ください。使うプラグインや条件なども同じなので、今回は説明を省略します。
複数選択がある場合のCSV上の値としてはカンマ区切りが一般的で、カテゴリやタクソノミーについてはこのカンマ区切りの値がCSVインポートでも有効です。
例)”category01,category02,category03″
しかしながら、カスタムフィールドではこのカンマ区切りが使えません(カンマも値の一部と認識されてしまいます)。
そこで、カンマを値の区切りの記号として認識させ、その前後を別の値としてインポートできるようなちょっとした細工が必要です。その細工をテーマの function.php に追記するのが一番最初の作業になります。
あらかじめそのチェックボックス型のカスタムフィールドのField Keysを用意してください。
用意できたら「Really Simple CSV Importer」の really_simple_csv_importer_save_meta のフィルターフックを記述します。
functions.php
function really_simple_csv_importer_checkbox( $meta, $post, $is_update ) { foreach ($meta as $key => $value) { if ($key == 'field_XXXXXXX') { //field_XXXXXXXには対象のカスタムフィールドのField Keysを入れる if ($value != "") { $meta[$key] = preg_split("/,+/", $value); } else { $meta_array[$key] = ""; } } return $meta; } } add_filter( 'really_simple_csv_importer_save_meta', 'really_simple_csv_importer_checkbox', 10, 3 );
これで細工完了です。
あとは対象のカスタムフィールドの値のところを、カンマ区切りで入れればOKです。
当然ですが、カンマ区切りがCSV上の値の区切りと間違われないように、” ” で囲うことを忘れずに。
(最新のエクセルからCSV出力すれば自動で値を ” ” で囲ってくれます)
ご活用ください。
WordPressカスタマイズ事例やウェブ制作ノウハウの新着情報、お役立ち情報を
リアルタイムにメルマガ配信!
100ウェブで手がけた制作・開発案件を一部、ご紹介。
クライアントからご相談いただいた内容とその実装におけるポイント、工期、予算について確認いただけます。
【テレワーク実施中 につきお電話転送中】
コール中1秒程度無音状態になりますがそのままお待ちください。
受付時間
平日 10:00~18:00
メールでのお問い合わせでも
1営業日以内にご連絡いたします。