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');