
Hi,
I have a similar issue: I have to import some data from a MySQL DB, and with an older version of ACF I just used field names (so I could cycle easily on the querys’ result rows) to store values with update_field, and get_field retrieved them perfectly.
I recently updated to the last version of ACF, and get_field stopped working unless I edited the post and saved, which I can’t do given the size of my data (thousands of posts).
Trying to solve the issue, I found that in function get_field_object() in core/api.php there is a test
if( !$field)
It happens that when get_field is retrieving a field with a temporary field key (e.g. field_myfieldname) $field at that point is an array with all the correct keys, but no values.
Changing the line to
if( !$field || !$field['key'])
to detect an empty key enables the execution of the following code
// treat as text field
$field = array(
'type' => 'text',
'name' => $orig_field_key,
'key' => 'field_' . $orig_field_key,
);
$field = apply_filters('acf/load_field', $field, $field['key'] );
which seems to fix the problem and retrieve the data.
I can imagine there would be problems with some types of field, but it’s OK for me since they are text fields.