【发布时间】:2018-06-12 16:34:51
【问题描述】:
我正在使用 wp_insert_post() 以编程方式创建帖子。我的帖子正在成功创建。我也在使用高级自定义字段。我正在尝试使用 update_field() 和 update_sub_field() 命令将内容插入新帖子的转发器字段,但无济于事。在某些情况下,我可以插入数据,但随后使用 get_field('field_name', $post_id) 检索它会返回空。
是我遗漏了什么还是我将数据插入了错误的位置?
我的字段组可以看到here.
我试过了:
update_field( 'system_preset_1_inverter_group', 'test_data' , $new_quote_id );
update_sub_field( array('system_preset_1_inverter_group', 1, 'inverter'), 'test_data' , $new_quote_id );
update_sub_field( array('system_preset_1', 1, 'inverter_group', 1, 'inverter'), 'test_data' , $new_quote_id );
注意:这样做可以正常工作,但它不是组或转发器字段的一部分:
update_field( 'preset_or_custom' , $systems_preset , $new_quote_id );
我也试过这个:
// Inverters
$preset_1_flag = 1;
foreach ( $system_preset_1_inverters as $insert_inverter_1 ) {
update_field( 'system_preset_1_inverter_group_' . $preset_1_flag . '_inverter' , $system_preset_1_inverter_brand . ' ' . $insert_inverter_1, $new_quote_id );
$preset_1_flag++;
}
我很高兴使用任何进一步的必要代码对此进行扩展。
代码
// 1) Savings TAB
$savings_1 = 'Yes';
$savings_2 = 'Quarterly';
$savings_3 = 333;
$savings_4 = 'select';
$savings_5 = $wud_system_size;
$savings_6 = 35;
$savings_7 = 0.8;
$savings_8 = 0.38;
$savings_9 = 0.12;
$savings_10 = $data['fields'][128]['value'];
$savings_11 = $data['fields'][129]['value'];
// 2) Systems TAB
$systems_preset = 'Preset';
$systems_size = $wud_system_size;
$default_inverters = get_field('inverters', 'options');
$default_brands = $default_inverters['default_inverter_brands'];
// This function returns an array of inverters.
$system_preset_1_inverters = \Roots\Sage\CPT_Solar\solar_quote_choose_string_inverter( 1, $systems_size );
$system_preset_1_inverter_brand = $default_brands['brand_1'];
$system_preset_1_panels = $default_panels;
$system_preset_1_no_panels = ceil($systems_size * 1000 / $default_panel_wattage[1]);
$system_preset_2_inverters = \Roots\Sage\CPT_Solar\solar_quote_choose_string_inverter( 2, $systems_size );
$system_preset_2_inverter_brand = $default_brands['brand_2'];
$system_preset_2_panels = $default_panels;
$system_preset_2_no_panels = ceil($systems_size * 1000 / $default_panel_wattage[1]);
$system_preset_3_inverters = '0.27'; // TBA
$system_preset_3_inverter_brand = $default_brands['brand_3'];
$system_preset_3_panels = $default_panels;
$system_preset_3_no_panels = ceil($systems_size * 1000 / $default_panel_wattage[1]);
// Insert the post into the database
$new_quote_id = wp_insert_post( array(
"post_title" => 'QID-temp',
"post_content" => '',
"post_type" => 'solar_quote',
"post_status" => "publish"
));
$the_quote['post_title'] = 'QID-' . $new_quote_id;
$the_quote['ID'] = $new_quote_id;
// Update post title.
wp_update_post( $the_quote );
// =========================
// Update the post with all relevant details below.
// =========================
// THESE ALL SEEM TO WORK FINE.
// 1) Update Savings Tab
update_field( 'calculate_savings_system_size' , $savings_1 , $new_quote_id );
update_field( 'electricity_bill_frequency' , $savings_2 , $new_quote_id );
update_field( 'electricity_bill_amount' , $savings_3 , $new_quote_id );
update_field( 'system_size_recommendation' , $savings_4 , $new_quote_id );
update_field( 'selected_system_size' , $savings_5 , $new_quote_id );
update_field( 'percentage_time_home' , $savings_6 , $new_quote_id );
update_field( 'daily_supply_charge' , $savings_7 , $new_quote_id );
update_field( 'rate_of_power' , $savings_8 , $new_quote_id );
update_field( 'feed_in_tariff' , $savings_9 , $new_quote_id );
update_field( 'savings_from' , $savings_10 , $new_quote_id );
update_field( 'savings_to' , $savings_11 , $new_quote_id );
// THIS ISN'T WORKING
// Inverters
$preset_1_flag = 1;
foreach ( $system_preset_1_inverters as $insert_inverter_1 ) {
update_field( 'system_preset_1_inverter_group_' . $preset_1_flag . '_inverter' , $system_preset_1_inverter_brand . ' ' . $insert_inverter_1, $new_quote_id );
$preset_1_flag++;
}
【问题讨论】:
标签: php wordpress advanced-custom-fields