2016-07-05 3 views
1

ACF Wordpress에서 중계기 필드를 업데이트해야하는이 코드를 발견했습니다. 내 중계기에는 3 개의 열이 있습니다. 중계기의 한 열에서 특정 필드 만 업데이트해야합니다. 이 코드에 그 작업을 수행하는 방법 : 나는) (나는 PRO 라이센스가없는 나는 update_sub_field 사용할 수 없다는 것을 말할 필요가리피터 필드를 배열 키로 업데이트하는 방법은 무엇입니까?

// save a repeater field value 
$field_key = "field_3424324234"; 
$value = array(
    array(
     "sub_field_1" => "Foo", 
     "sub_field_2" => "Bar" 
    ) 
); 
update_field($field_key, $value, $post_id); 

.

답변

0

나는 내 질문에 답할 것입니다. update_sub_field라는 update_field와 약간 다른 함수를 사용했습니다. 이 기능을 사용하려면 ACF Pro 5 이상이 필요합니다. Jordi Nebot 대답이 나를 조금 도와 주었지만, 제 경우에는 추가 변수 ($post_id)를 추가해야했습니다. 그래서 여기이 사람을 도움이 될 것 기대하고있다 :

update_sub_field(array("repeater_field_key", $row+1, "repeater_sub_field_key"), $new_value, $post_id); 

나는 리피터 통해 반복 할 때 위치가 0에서 시작 시작 $row$row 수 카운트가, 1에서 시작 $row+1 때문에 추가. 그것이 의미가 있기를 바랍니다.

1

리피터 내부의 하위 필드를 업데이트하려면 update_field 대신 update_sub_field을 사용해야합니다.

당신이 have_rows와 중계기를 반복하지 않는 (당신의 조각에 의해) 가정, 그래서 같은 것,의 당신이 당신의 세 번째 행에 sub_field_2을 업데이트 할 가정 해 봅시다 :

$subfield = 'sub_field_2'; 
$row = 3; 
$new_value = 'The new value of the field'; 
update_sub_field(array($field_key, $row, $sub_field), $new_value, $post_id); 

편집 : 내 답변에 $post_id 매개 변수를 놓쳤습니다. 나를 통지 해 주신 것에 대해 감사드립니다.

도움이 되었기를 바랍니다.

+0

$ subfield = 'sub_field_2'는 나에게도 동일하게 적용되거나 'sub_field_'를 가지고 변경해야합니까? – Ionut

+0

이 "호출 정의되지 않은 함수 update_sub_field()" – Ionut

+0

물론,'sub_field_2'는 업데이트하려는 하위 필드의 이름이어야합니다. (나는 당신의 코드 때문에'sub_field_2'를 사용했습니다). –

관련 문제