Support

Account

Home Forums Bug Reports Flexible Content Fields with local json save out of order

Solving

Flexible Content Fields with local json save out of order

  • To combine the fixes from both threads, I replaced:

    // Add field menu_order.
    if( !isset($count[ $field['parent'] ]) ) {
            $count[ $field['parent'] ] = 1;
    } else {
            $count[ $field['parent'] ]++;
    }
    
    // Only add menu order if doesn't already exist.
    // Allows Flexible Content field to set custom order.
    if( !isset($field['menu_order']) ) {
            $field['menu_order'] = ($count[ $field['parent'] ] - 1);
    }

    on lines 1029-1040 of acf-field-group-functions.php with

    // Add field menu_order.
    if (!isset($field['parent_layout'])) {
        if( !isset($count[ $field['parent'] ]) ) {
            $count[ $field['parent'] ] = 1;
        } else {
            $count[ $field['parent'] ]++;
        }
    } else {
        if( !isset($count[ $field['parent_layout'] ]) ) {
            $count[ $field['parent_layout'] ] = 1;
        } else {
            $count[ $field['parent_layout'] ]++;
        }
    }
    
    // Only add menu order if doesn't already exist.
    // Allows Flexible Content field to set custom order
    if (!isset($field['parent_layout'])) {
        if( empty($field['menu_order']) && $field['menu_order'] !== 0) {
            $field['menu_order'] = ($count[ $field['parent'] ] - 1);
        }
    } else {
        if( empty($field['menu_order']) && $field['menu_order'] !== 0) {
            $field['menu_order'] = ($count[ $field['parent_layout'] ] - 1);
        }
    }
  • It looks like this is fixed in 5.8.5, as per patch notes at https://www.advancedcustomfields.com/blog/acf-5-8-5-release/

    *Release Date - 8 October 2019*
    
    * New - Added new choice "Add" to the User Form location rule.
    * New - Optimized acf_form() logic when used in combination with acf_register_form().
    * Fix - Fixed bug causing incorrect field order after sync.
    * Fix - Fixed bug reverting the first field type to Text in Firefox version 69.0.1.
    * Fix - Fixed bug causing tinymce issues when changing between block modes.
    * Fix - Fixed bug preventing block registration when category does not exist.
    * Fix - Fixed bug preventing block registration when no icon is declared.
    * Dev - Added RegExp compatibility for innerBlocks.

    I am currently downloading to verify.

  • The fix in 5.8.5 looks good. Code change looks like the content of $field_gruop['ID'] and $field_gruop['menu_order'] were explicitly cast as INT to prevent issues with later comparisons.

Viewing 3 posts - 26 through 28 (of 28 total)

You must be logged in to reply to this topic.