ACF: Lav et ACF select field på baggrund af repeater fields fra samme indlæg

I dette eksempel bruger vi ACF repeaters fra samme indlæg til at danne grundlag for et ACF select felt som så kan bruge til at gemme andet data i indlægget. Vi bruger værdier fra repeater-feltet til at skabe grundlæg for de valgmuligheder som select feltet skal indeholde. Selectfeltet er så unikt for hvert indlæg, baseret på de repeaters som er oprettet på indlægget. I dette eksempel hedder underfeltet fra repeater-feltet “overskrift”. Selve repeater-feltet hedder “test-rows” og select feltet hedder i dette eksempel “budget_choice”.


/* Add to your functions.php */

function acf_load_choices_from_repeater_lennartc( $field) {
	$choices = get_field('test_rows'); // we grap the repeater fields
	$field['choices'] = [];  // we make an array for populate the choices
	if (is_array($choices)) { // we need this bcs otherwise we get a bug on pages where we cant find the repeaters, and in these cases we make a none
	foreach ( $choices as $choice ) {
		// vars
		$value = str_replace( ' ', '', $choice['overskrift'] ); // removing whitespace
		$label = $choice['overskrift'];
		// append to choices
		$field['choices'][ $label ] = $value;
	}
}  else {
	$field['choices'][ 'none' ] = 'none';
}
	return $field; // return the field
}

add_filter('acf/load_field/name=budget_choice', 'acf_load_choices_from_repeater_lennartc');