0

나는 ACF tutorial here to build from.을 사용하고 있습니다. 텍스트 하위 필드의 값을 사용하여 다른 하위 필드를 채우고 싶습니다. 동일한 중계기 필드. 나는 그것이 재귀 적으로 들리며 어쩌면 그것은 금지적이라고 생각한다. 필드 admin은 ajax-y 또는 즉시 업데이트하지 않으며 다른 사이트 기능을위한 관리 필드입니다.부모 필드 내에서 하위 필드 선택을 자동으로 채우는 방법

어쨌든, 여기까지 내가 지금까지 가지고있는 것이 있습니다.

  • ACF 리피터 필드 = core_values ​​필드 = VALUE_NAME에게 core_values ​​내에
  • 대상 서브 필드
  • 원본 텍스트 서브 필드 valuesadmin =에
  • 페이지 (VALUE_NAME에서 각각 필요한 동적 전파 선택) =
    • constructor1_name
    • constructor2_name
    • ,
    • constructor3_name
    • destructor1_name
    • 내가 위의 링크 된 튜토리얼의 코드를 수정하고 테마의 functions.php와 플러그인의 기본 파일에 넣어 시도했습니다

destructor2_name 다른 사용자 지정 함수를 작성하고 있습니다.

/** 
* ACF population functions 
*/ 

function acf_load_core_values_field_choices($field) { 

// reset choices 
$field['choices'] = array(); 


// if has rows 
if(have_rows('core_values', 'valuesadmin')) { 

    // while has rows 
    while(have_rows('core_values', 'valuesadmin')) { 

     // instantiate row 
     the_row(); 


     // vars 
     $value = get_sub_field('value_name'); 
     $label = get_sub_field('value_name'); 


     // append to choices 
     $field['constructor1_name'][ $value ] = $label; 
     $field['constructor2_name'][ $value ] = $label; 
     $field['constructor3_name'][ $value ] = $label; 
     $field['destructor1_name'][ $value ] = $label; 
     $field['destructor2_name'][ $value ] = $label; 

    } 

} 


// return the field 
    return $field; 

} 

add_filter('acf/load_field/name=constructor1_name', 'acf_load_core_values_field_choices'); 
add_filter('acf/load_field/name=constructor2_name', 'acf_load_core_values_field_choices'); 
add_filter('acf/load_field/name=constructor3_name', 'acf_load_core_values_field_choices'); 
add_filter('acf/load_field/name=destructor1_name', 'acf_load_core_values_field_choices'); 
add_filter('acf/load_field/name=destructor2_name', 'acf_load_core_values_field_choices'); 

분명히 이것은 내가 원하는대로 선택 서브 필드를 전파하지 않습니다.

질문 : -이 경우도 가능합니다 (value_name 필드는 모두 값으로 이미 채워져 있습니다) - 기능 코드는 어디에 있어야합니까? - 어쩌면 코드를 어떻게 든 맹 글링했습니다.

미리 감사드립니다.

+0

나는 Wordpress 이외의 someting을 사용하려고합니다 :-). 그러나 WP-Plugin에 previosly selected 값으로 필터링 된 옵션을로드하는 데 도움이되는 buildin-function이없는 경우 Javascript를 사용해야합니다. 또는 jquery.ajax 함수 : http://api.jquery.com/jquery.ajax/ – Oliver

답변

0

글쎄, 먼저이 모든 것을 ACF 옵션 페이지로 옮긴 다음 옵션 페이지의 두 번째 필드에서 동적으로 값을 채울 수있는 또 다른 ACF 필드 (values_master)를 작성하여 원하는 기능을 얻었습니다. 그래서 재귀 적으로 작동하지 않는다면 잘 모르겠지만 작동하는지는 알 수 없습니다.

function acf_load_value_field_choices($field) { 

    // reset choices 
    $field['choices'] = array(); 


    // if has rows 
    if(have_rows('values_master', 'option')) { 

     // while has rows 
     while(have_rows('values_master', 'option')) { 

      // instantiate row 
      the_row(); 


      // vars 
      $value = get_sub_field('value_name'); 
      $label = get_sub_field('value_name'); 


      // append to choices 
      $field['choices'][ $value ] = $label; 

     } 

    } 


    // return the field 
    return $field; 

} 

add_filter('acf/load_field/name=constructor1_name', 'acf_load_value_field_choices'); 
add_filter('acf/load_field/name=constructor2_name', 'acf_load_value_field_choices'); 
add_filter('acf/load_field/name=constructor3_name', 'acf_load_value_field_choices'); 
add_filter('acf/load_field/name=destructor1_name', 'acf_load_value_field_choices'); 
add_filter('acf/load_field/name=destructor2_name', 'acf_load_value_field_choices'); 
add_filter('acf/load_field/name=value_mstr_name', 'acf_load_value_field_choices');