Manage ACF Select Choices From an Options Page
Lets editors maintain the choices of an ACF select field in a repeater on an options page instead of editing the field group.
Opens WPIDE on
Code
// Select field to fill, and the options repeater with value/label rows.
$wpide_acf_select_field = 'color';
$wpide_acf_choices_repeater = 'color_choices';
add_filter( 'acf/load_field/name=' . $wpide_acf_select_field, function ( $field ) use ( $wpide_acf_choices_repeater ) {
if ( ! function_exists( 'get_field' ) ) {
return $field;
}
$rows = get_field( $wpide_acf_choices_repeater, 'option' );
if ( is_array( $rows ) && $rows ) {
$field['choices'] = array();
foreach ( $rows as $row ) {
if ( ! empty( $row['value'] ) ) {
$field['choices'][ sanitize_text_field( $row['value'] ) ] = ! empty( $row['label'] ) ? sanitize_text_field( $row['label'] ) : sanitize_text_field( $row['value'] );
}
}
}
return $field;
} );
Notes
Create an options repeater (default name: color_choices) with "value" and "label" sub fields. Needs ACF PRO.
How to add this snippet
- Install WPIDE on your WordPress site (it is free) and open Code Snippets.
- Use snippet above adds it from the library in one click. Or copy the code into a new snippet with the same code type.
- It is added inactive: review the code and settings, then switch it on.