web-dev-qa-db-ja.com

Wp all importを使ってプログラムでカスタムフィールドをインポートする

インポートする必要があるカスタムフィールドがたくさんあるcsvがあります。インターフェイスを使用してフィールドを手動で設定するには時間がかかりすぎます。また、値が一致することを確認するように依頼することは、あまりクライアントには向いていません。値の多くは、csvからWordPressのカスタムフィールドの別の値にもマップする必要があります。

2
forsvunnet

WP All Importは、コードに実装されているさまざまなフック、アクション、およびフィルタに、文書化されていない機能が多数あります。そのようなマッピングをする最も簡単な方法はpmxi_options_optionsにフィルタを追加してカスタムルールを追加することです。これらのルールは、インポート設定ステップ中に[カスタムフィールド]アコーディオンの下に表示されます。

<?php
add_filter( 'pmxi_options_options', function( $options ) {
  // Match the desired custom post type
  if ( $options['custom_type'] != 'product' ) {
    return $options;
  }
  // Configure the custom fields
  $options['custom_name']['custom_field_name'] = '_custom_field_name';
  $options['custom_value']['custom_field_name'] = '{csv_column[1]}';
  $options['custom_mapping_rules']['custom_field_name'] = json_encode( [
    'value_from_csv' => 'value_to_custom_field',
    'en' => 'English',
  ] );
  return $options;
} );

enter image description here 

2
forsvunnet