$row){ if($row['name'] !== $name) continue; $sub_field = acf_extract_var($layout['sub_fields'], $k); break; } if(!$sub_field){ return false; } // Reset keys $layout['sub_fields'] = array_values($layout['sub_fields']); // Add value if(isset($value[$sub_field['key']])){ $sub_field['value'] = $value[$sub_field['key']]; }elseif(isset($sub_field['default_value'])){ $sub_field['value'] = $sub_field['default_value']; } return $sub_field; } /** * acfe_map_any_field * * @param $fields * @param $type * @param $callback * * @return mixed */ function acfe_map_any_field($fields, $type, $callback){ foreach($fields as &$field){ if($field['type'] === $type){ $field = call_user_func($callback, $field); } if(acf_maybe_get($field, 'sub_fields')){ $field['sub_fields'] = acfe_map_any_field($field['sub_fields'], $type, $callback); } } return $fields; }