如果使用ACF的重复器,并且字段正确编码,但重复器仍无法正常工作,请考虑使用以下代码示例:
在functions.php文件中加入以下代码:
add_action('acf/save_post', function($post_id) { $post = get_post($post_id); if($post->post_type !== 'your_custom_post_type') { return; } $field_key = 'your_acf_repeater_field_key'; if(!isset($_POST['acf'][$field_key])) { return; } $value = $POST['acf'][$field_key]; foreach($value as $i => $row) { foreach($row as $field_name => $field_value) { $sub_field_key = "sub_field_key{$field_name}"; update_post_meta($row['ID'], $sub_field_key, $field_value); } } });
上述代码通过acf/save_post保存事件更新重复器数据。其中,'your_custom_post_type'是自定义文章类型的名称,'your_acf_repeater_field_key'是你想要更新的ACF重复器字段的密钥,'sub_field_key_{$field_name}'是循环中使用的子字段密钥。
在ACF重复器循环中,我们将使用update_post_meta函数更新每行数据相关子字段的值。 $row['ID']是当前行的ID, sub_field_key_ {$field_name}是子字段的密钥。
此代码应该解决ACF重复器在正确编码字段后无法正常工作的问题。